Docker Swarm,用于管理无头容器并保持其更新(或守望台?)

时间:2018-10-02 12:54:12

标签: docker docker-swarm headless docker-watchtower

我一直在尝试设计一种使用Docker Swarm管理一堆无头容器的策略-不需要负载平衡器,暴露任何端口或自动缩放。

我唯一想要的就是能够更新所有容器(在所有节点上)的功能,如果有任何图像已更新。每个运行的容器都需要具有特定的--hostname

为此运行docker service是否可行?还是应该只针对特定节点进行常规的docker run来指定我想要的--hostname?我什至询问docker service的原因是因为它允许您进行更新(如果有更新的图像,则强制对所有容器进行更新)。

还认为Docker Swarm将使监视所有容器(即从中央位置进行管理)变得容易一些。

我正在查看的另一个选项是watchtower,它可以在运行其中一个容器的每台服务器上运行,以作为群集的替代方法。我唯一的问题是它不提供任何用于集中管理的业务流程。

任何人都认为在这种情况下哪种方法更好?

1 个答案:

答案 0 :(得分:2)

docker service命令外,Docker swarm在滚动更新方面没有任何优势,swarm仅向用户提供水平扩展,并将负载均衡器放在称为“ service”的那些副本的前面。其他好处,例如在群集节点之间复制docker事件。

docker service --force将按预期工作。

但是,您可能应该同时使用docker swarm进行编排和使用守望台进行滚动更新。