二、测试,尝试管理一个docker镜像
注意,以下内容没有特别说明可在任意一台服务上完成,我选择在227
1、在docker中下载一个nginx镜像
docker pull nginx
2、在所有mesos-slave上增加配置参数,并重启(这一步在三台服务上面进行操作)
echo 'docker,mesos' | tee /etc/mesos-slave/containerizers
systemctl restart mesos-slave
3、在浏览器中打开marathon,默认端口8080
:8080
下面通过Mesos调度,使用marathon来创建一个nginx镜像的Docker容器,Marathon启动时会读取/etc/mesos/zk配置文件,Marathon通过Zookeeper来找到Mesos Master。
4、创建nginx配置文件nginx.json
[root@mesos-node1 ~]# cat nginx.json
{
"id":"nginx",
"cmd": null,
"cpus":0.2,
"mem":32.0,
"instances": 1,
"constraints": [["hostname",
"UNIQUE",""]],
"container": {
"type":"DOCKER",
"docker": {
"image": "nginx",
"network": "BRIDGE",
"portMappings": [
{"containerPort": 80,
"hostPort": 0,"servicePort": 0,"protocol":
"tcp" }
]
}
}
}
[root@mesos-node1 ~]#
5、利用curl的方式开启nginx容器
curl -X POST :8080/v2/apps -d@/root/nginx.json -H "Content-type:application/json"
6、查看开启的容器
[root@mesos-node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5175ef6c9dde nginx "nginx -g 'daemon off" About a minute ago Up About a minute 443/tcp, 0.0.0.0:31894->80/tcp mesos-e0a9ccd0-e362- 4250-8c58-08b6ded0bb17-S2.e4635e6a-d25b-4c5b-a351-0756174acf28
7、在浏览器中查看
但是我们可以发现,只能227这台服务器来访问这个端口,出现nginx页面,用其他的IP地址显然是不可以的.
so,接下来我们就来配置服务发现,设置一个固定端口,实现让每个IP地址都可以访问到这个页面。