Docker 远程 API 不准确列出 运行 集群中的容器

Docker Remote API not accurate listing running containers in swarm

目前我面临以下问题:

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

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

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

有什么想法吗?

This Question does not seem to be my problem

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

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