目前我遇到以下问题:
我使用debian和已安装的docker设置了3台虚拟盒机器。没有防火墙。 我创建了一个swarm,使一台机器成为管理器,并将其他两个机器作为工作者加入,如无数网页中所述。工作完美。 在swarm管理器上,我通过-H:4243激活了一个远程API访问...并重新启动了deamon。 (仅限群体经理) ' docker node ls'限定所有活动的节点。 当我调用http://:4243 / nodes时,我看到了所有节点。 我创建了一个覆盖网络(很可能不需要说明我的问题。标准入口网络也应该没问题) 然后我用3副本创建了一个服务。指定名称,我的覆盖网络和一些env参数。 ' docker service ps'给我的信息是每个节点用我的图像运行一个容器。 使用' docker ps'进行双重检查在每个节点上都说同样的。
我的问题是: 致电' http://:4243 / containers / json'我只看到一个容器,即群组管理器上的容器。
我希望看到3个容器,每个节点一个。问题是为什么?
有什么想法吗?
答案 0 :(得分:1)
通过/containers/json
列出容器只显示" local"该节点上的容器。如果要全面了解每个节点上的每个容器,则需要使用群集感知端点。 Docker Services是高级抽象,而Tasks是容器级抽象。请参阅https://docs.docker.com/engine/api/v1.30/#tag/Task以供参考。
如果您在http://:4243/tasks
的经理节点上执行请求,您应该看到每个任务(也称为容器),他们正在运行的节点以及他们属于哪个服务。