Docker 用于管理无头容器并使它们保持更新(或瞭望塔?)的 Swarm

Docker Swarm for managing headless containers, and keeping them updated (or watchtower?)

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

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

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

还认为 Docker Swarm 可以更轻松地关注所有容器(即从中央位置管理它们)。

我正在查看的另一个选项是 watchtower,到每个服务器上的 运行 运行 宁其中一个容器,作为 swarm 的替代方案。我唯一的问题是它没有为集中管理提供任何编排。

有人知道在这种情况下什么是更好的选择吗?

Docker 除了 docker service 命令之外,swarm 不会给你任何关于滚动更新的优势,swarm 只提供用户水平扩展并在那些名为 [= 的副本前面放置一个负载平衡器18=],以及其他一些好东西,例如跨群节点复制 docker 事件。

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

但是,您可能应该同时使用,docker swarm 用于编排和 watchtower 用于滚动更新。