Docker Swarm 模式 - 显示每个节点的容器
Docker Swarm Mode - Show containers per node
我正在使用 Docker 版本 17.12.1-ce。
我已经设置了一个有两个节点的群,我在管理器上有一个堆栈 运行,而我要在工作器上实例化新节点(不在服务中,而是作为独立的容器)。
到目前为止,我一直无法找到一种方法来专门在 worker 上实例化容器,and/or 以验证新容器是否确实部署在 worker 上。
我已阅读 which led me to run containers with the -e
option specifying constraint:Role==worker
, constraint:node==<nodeId>
or constraint:<custom label>==<value>
, and this github issue from 2016 的答案显示 docker info
命令仅输出我需要的信息(即在任何给定时间每个节点上有多少个容器),但我不是确定这是否是 独立 swarm 的特性,因为 docker info
只有节点数,但 没有每个节点的详细信息。我也尝试过 docker -D info
.
具体来说,我需要:
- 手动指定要将独立容器部署到哪个节点(即与服务无关)。
- 检查一个容器在特定的 swarm 节点上 运行,或者检查一个节点上有多少个容器 运行。
Swarm 命令只会 care/show service-related 个容器。如果您使用 docker run
创建一个,那么您将需要使用 ssh node2 docker ps
之类的东西来查看该节点上的所有容器。
我建议您在 Swarm 中尽最大努力将所有容器作为服务的一部分。如果您需要在 nodeX 上 运行 的容器,则可以使用标签和约束创建具有 "node constraint" 的服务。在这种情况下,您可以将该服务的单个副本限制为节点的主机名。
docker service create --constraint Node.Hostname==swarm2 nginx
要从任何 swarm 管理器查看节点上的所有任务:
docker node ps <nodename_or_id>
我正在使用 Docker 版本 17.12.1-ce。
我已经设置了一个有两个节点的群,我在管理器上有一个堆栈 运行,而我要在工作器上实例化新节点(不在服务中,而是作为独立的容器)。
到目前为止,我一直无法找到一种方法来专门在 worker 上实例化容器,and/or 以验证新容器是否确实部署在 worker 上。
我已阅读 -e
option specifying constraint:Role==worker
, constraint:node==<nodeId>
or constraint:<custom label>==<value>
, and this github issue from 2016 的答案显示 docker info
命令仅输出我需要的信息(即在任何给定时间每个节点上有多少个容器),但我不是确定这是否是 独立 swarm 的特性,因为 docker info
只有节点数,但 没有每个节点的详细信息。我也尝试过 docker -D info
.
具体来说,我需要:
- 手动指定要将独立容器部署到哪个节点(即与服务无关)。
- 检查一个容器在特定的 swarm 节点上 运行,或者检查一个节点上有多少个容器 运行。
Swarm 命令只会 care/show service-related 个容器。如果您使用 docker run
创建一个,那么您将需要使用 ssh node2 docker ps
之类的东西来查看该节点上的所有容器。
我建议您在 Swarm 中尽最大努力将所有容器作为服务的一部分。如果您需要在 nodeX 上 运行 的容器,则可以使用标签和约束创建具有 "node constraint" 的服务。在这种情况下,您可以将该服务的单个副本限制为节点的主机名。
docker service create --constraint Node.Hostname==swarm2 nginx
要从任何 swarm 管理器查看节点上的所有任务:
docker node ps <nodename_or_id>