群集模式:检查pipe理节点上的工作节点的容器

我想知道是否有可能从pipe理器节点检查工作节点上运行的容器? 容器是通过docker服务创build的。 从经理节点,我可以得到任务的服务ID(通过docker服务PS甚至容器ID(通过docker检查)我的最终目标是能够find容器的IP地址。任何帮助将不胜感激!

附加信息:

Docker版本1.12.1

操作系统:CentOS Linxus 7

目前还没有直接的办法。 你应该忘记处理IP的问题,并依靠parsing使用DNS名称(服务名称)。

如果你真的想,虽然,你可以创build一个脚本,执行以下操作。

  1. 获取服务的任务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 

    该服务有两个任务在不同的节点上运行。

  2. 获取每个任务的容器ID

    我只是在这里做一个任务

     docker inspect --format "{{.Status.ContainerStatus.ContainerID}}" 31cb7clxw3lfi1y6ko12edjys 

    这将返回任务的容器ID

     13a24dff4bd1f9351938b09d32db451406ed64b5f890f66f18fec12c611e9175 
  3. 获取容器IP

     docker $(docker-machine config vmw-node03) inspect --format "{{.NetworkSettings.IPAddress}}" 13a24dff4bd1f9351938b09d32db451406ed64b5f890f66f18fec12c611e9175 

    哪个返回它

     172.17.0.2