群集模式:检查pipe理节点上的工作节点的容器
我想知道是否有可能从pipe理器节点检查工作节点上运行的容器? 容器是通过docker服务创build的。 从经理节点,我可以得到任务的服务ID(通过docker服务PS甚至容器ID(通过docker检查)我的最终目标是能够find容器的IP地址。任何帮助将不胜感激!
附加信息:
Docker版本1.12.1
操作系统:CentOS Linxus 7
目前还没有直接的办法。 你应该忘记处理IP的问题,并依靠parsing使用DNS名称(服务名称)。
如果你真的想,虽然,你可以创build一个脚本,执行以下操作。
-
获取服务的任务ID和节点名称。
docker service ps myservice
这将返回类似的东西
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR 31cb7clxw3lfi1y6ko12edjys foo.1 alpine:3.4 vmw-node03 Running Running 30 minutes ago 9gkzs118txbc8a8gvla3bildq foo.2 alpine:3.4 vmw-node01 Running Running 30 minutes ago
该服务有两个任务在不同的节点上运行。
-
获取每个任务的容器ID
我只是在这里做一个任务
docker inspect --format "{{.Status.ContainerStatus.ContainerID}}" 31cb7clxw3lfi1y6ko12edjys
这将返回任务的容器ID
13a24dff4bd1f9351938b09d32db451406ed64b5f890f66f18fec12c611e9175
-
获取容器IP
docker $(docker-machine config vmw-node03) inspect --format "{{.NetworkSettings.IPAddress}}" 13a24dff4bd1f9351938b09d32db451406ed64b5f890f66f18fec12c611e9175
哪个返回它
172.17.0.2