我有一个由一个管理器和一个工作节点组成的docker swarm集群。然后,我从笔记本电脑配置了(tls
和DOCKER_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
不显示来自经理机器的容器而不显示来自工作节点的所有容器?
答案 0 :(得分:1)
默认情况下,经典swarm(作为容器运行)会隐藏来自docker ps
输出的swarm管理容器。您可以使用docker ps -a
命令显示这些容器。
此行为可能会在其他地方记录,但我看到记录的行为位于api differences docs:
获取“/ containers / json”
默认情况下隐藏从群体官方图像启动的容器,使用all = 1显示它们。
all=1
api语法相当于docker ps -a
cli。