我有2个服务应该在我添加到我的Swarm(Docker),serviceG和serviceR的机器上运行,serviceG处于全局模式,serviceR处于复制模式。
当我向docker swarm添加新机器时,会自动提取serviceG的图像,但不会自动提取serviceR的图像。
如果我在其他计算机上删除了一个serviceR容器,则会在我的新计算机上提取图像,然后现在可以在新计算机上启动容器。
图像都存储在同一个存储库中。
我可以在机器启动时使用Docker Pull,但我希望当新机加入swarm服务R的图像时自动完成拉动。
答案 0 :(得分:1)
这是按设计运作的。 Swarm模式不会过早地重新平衡群中的工作负载。这样做可能会导致工作负载重新安排到抖动或其他故障节点上,并且通常会导致服务可用性降低。
如果您需要手动强制滚动更新以重新平衡服务,则可以运行:
docker service update --force your_service_name
如果您只想提取图像而不是运行图像,则可以直接登录到新节点并运行docker pull your_image_name
。