1

目前我面临以下问题:

我用 debian 设置了 3 台虚拟机并安装了 docker。没有防火墙。我创建了一个集群,让一台机器作为管理器,并加入另外两台作为工人,正如无数网页中所描述的那样。完美运行。在集群管理器上,我通过 -H :4243... 激活了远程 API 访问并重新启动了守护进程。(仅在 swarm 管理器上)'docker node ls' 使所有节点都处于活动状态。当我调用 http://:4243/nodes 时,我会看到所有节点。我创建了一个覆盖网络(很可能不需要说明我的问题。标准入口网络也应该没问题)然后我创建了一个具有 3 个副本的服务。指定名称、我的覆盖网络和一些环境参数。'docker service ps' 为我提供了每个节点使用我的图像运行一个容器的信息。在每个节点上使用“docker ps”进行双重检查也是如此。

我的问题是:调用 'http://:4243/containers/json' 我只看到一个容器,即 swarm manager 上的那个。

我希望看到 3 个容器,每个节点一个。问题是为什么?

有任何想法吗 ?

这个问题似乎不是我的问题

4

1 回答 1

1

列出容器/containers/json仅显示该节点上的“本地”容器。如果您想全面了解每个节点上的每个容器,则需要使用 swarm 感知端点。Docker 服务是高级抽象,而任务是容器级抽象。请参阅https://docs.docker.com/engine/api/v1.30/#tag/Task以供参考。

如果您在管理器节点上执行请求,http://:4243/tasks您应该会看到每个任务(也称为容器)、它们在哪个节点上运行以及它们属于哪个服务。

于 2017-07-27T06:08:00.723 回答