试用docker 1.12 swarmkit遇到的问题
用docker service create 创建的服务里.
docker service ls
ID NAME REPLICAS IMAGE COMMAND
c4xubqfahzid demo 2/2 alpine ping docker.com
docker service tasks demo
ID NAME SERVICE IMAGE LAST STATE DESIRED STATE NODE
9878bo6xyx0459qw9lfydwptv demo.1 demo alpine Running 8 minutes Running centos-node5
9u1p24ccj9lbyjilnih2b40s9 demo.2 demo alpine Running 7 minutes Running centos-node4
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fc3cbcb4d5c8 alpine:latest "ping docker.com" 7 minutes ago Up 7 minutes demo.2.9u1p24ccj9lbyjilnih2b40s9
发现实际上的容器名是用的
taskname.${number}.taskid
拼接的然后容器无论用什么原因停了(host重启也会), 会启动一个新的容器, 容器id会改变, 原来的容器还是存在的
这一组service服务里如果用的是同一个网络的话, 是可以互相联通的.
这就有个问题了, 那如果其中一个容器停止了, 新的taskid 又不知道, 在容器里怎么去连接新启动的那一个?
如果把create 的参数--restart-condition 设置成none的话, 重启一个容器后, docker service tasks 看到的状态不会更新了, 一直是Shutdown状态
另一个问题就是这样是不是只能和数据卷了? 服务器启动时, 如果多节点虽然可以用filter过滤, 但出现两个容器跑一个机器去时数据卷怎么同步的?
0802: 更新
我试了下, 发现是manager的ip可以自动识别里边的服务,自动负载均衡。 但防火墙规则加了外边也访问不了, 不知道为什么。
用create 服务时用-p 指定端口, 但没测试是不是必需的
还有就是用scale扩容后,过一会,服务就访问不了的, 但容器状态是正常的, 容器里边也是能访问的
(http://ystyle.top/2016/07/02/s ... ji-qun)
1 个回复
水柒
赞同来自:
请教个问题
使用 1.12版本 docker 自带的swarm 组建的集群 创建的service 生产的容器如果在 别的节点,要怎么查看容器信息, docker ps 只能看到本节点的容器