我有一个由一个管理器和一个工作节点组成的 docker swarm 集群。然后我从我的笔记本电脑上配置(tls
和 DOCKER_HOST
)一个客户端来访问这个集群。
当我运行 docker ps
时,我只看到来自工作节点的容器(而不是工作节点的所有容器 (!))。
例如,来 self 的客户:
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
不显示来自管理器机器的容器,而不是来自工作节点的所有容器?
最佳答案
Classic swarm(作为容器运行)默认情况下从 docker ps
输出中隐藏 swarm 管理容器。您可以使用 docker ps -a
命令来显示这些容器。
这种行为可能记录在其他地方,但我看到的一个位置记录的行为是在 api differences docs 中。 :
GET "/containers/json"
Containers started from the swarm official image are hidden by default, use all=1 to display them.
all=1
api 语法等效于 docker ps -a
cli。
关于docker - 客户端访问 docker swarm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42390231/