Docker Swarm模式:检查工作节点';管理器节点上的容器

Docker Swarm模式:检查工作节点';管理器节点上的容器,docker,docker-swarm,Docker,Docker Swarm,我想知道是否可以从manager节点检查工作节点上运行的容器?容器是通过docker服务创建的。从manager节点,我可以获得任务的服务id(通过docker service ps,甚至容器id(通过docker inspect),我的最终目标是能够找到容器的ip地址。任何帮助都将不胜感激 其他信息: Docker版本1.12.1 操作系统:CentOS Linxus 7目前还没有直接的方法。你应该忘记处理ip,而依赖于使用dns名称(服务名称)进行解析 但是,如果您真的需要,您可以创建一个执

我想知道是否可以从manager节点检查工作节点上运行的容器?容器是通过docker服务创建的。从manager节点,我可以获得任务的服务id(通过docker service ps,甚至容器id(通过docker inspect),我的最终目标是能够找到容器的ip地址。任何帮助都将不胜感激

其他信息:

Docker版本1.12.1


操作系统:CentOS Linxus 7

目前还没有直接的方法。你应该忘记处理ip,而依赖于使用dns名称(服务名称)进行解析

但是,如果您真的需要,您可以创建一个执行以下操作的脚本

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

  • docker inspect
    声称支持图像和容器之外的任务。感谢您的回复!没有docker机器我有什么办法可以做到这一点吗?我已经创建了没有docker机器的单独实例
    docker机器配置节点
    部分只是告诉您的docker客户端哪个docker守护程序(节点)连接到。您可以通过ssh连接到正确的节点并运行
    docker inspect…
    ,也可以使用正确的docker变量设置本地环境并运行docker客户端。运行
    docker machine config somenode
    了解需要设置的环境变量。