7

我有一个由一个管理器和一个工作节点组成的 docker swarm 集群。然后我从我的笔记本电脑配置(tlsDOCKER_HOST)一个客户端来访问这个集群。

当我运行时,docker ps我只看到来自工作节点的容器(而不是工作节点的所有容器(!))。例如,来自我的客户:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                                                                                                                                      NAMES
a129d9402aeb        progrium/consul     "/bin/start -rejoi..."   2 weeks ago         Up 22 hours         IP:8300-8302->8300-8302/tcp, IP:8400->8400/tcp, IP:8301-8302->8301-8302/udp, 53/tcp, 53/udp, IP:8500->8500/tcp, IP:8600->8600/udp   hadoop1103/consul-agt2-hadoop 

以及我docker ps在工作节点上运行:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                                                                                                        NAMES
4fec7fbf0b00        swarm               "/swarm join --advert"   16 hours ago        Up 16 hours         2375/tcp                                                                                                                                                     join
a129d9402aeb        progrium/consul     "/bin/start -rejoin -"   2 weeks ago         Up 22 hours         0.0.0.0:8300-8302->8300-8302/tcp, 0.0.0.0:8400->8400/tcp, 0.0.0.0:8301-8302->8301-8302/udp, 53/tcp, 53/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp   consul-agt2-hadoop

所以有两个问题:为什么docker ps不显示来自管理器机器的容器而不是来自工作节点的所有容器?

4

1 回答 1

1

默认情况下,经典 swarm(作为容器运行)隐藏了 swarm 管理容器的docker ps输出。docker ps -a您可以使用命令来显示这些容器。

这种行为可能会记录在其他地方,但我看到的行为记录在api 差异文档中的一个位置:

获取“/容器/json”

从 swarm 官方镜像启动的容器默认是隐藏的,使用 all=1 显示。

all=1api 语法相当于docker ps -acli 。

于 2017-03-03T17:36:24.697 回答