我一直在尝试设计一个使用Docker Swarm来管理一堆无头容器的策略--不需要负载均衡器,不需要暴露任何端口,也不需要自动伸缩。
我唯一想要的是能够更新所有容器(在所有节点上),如果任何图像被更新的话。每个运行的容器都需要有一个特定的--hostname。
运行docker service对此可行吗?或者我应该只做一个针对特定节点的普通docker run,以指定我想要的--hostname?我之所以询问docker service,是因为它允许您进行更新(如果有更新的镜像,则强制对所有容器进行更新)。
我也在想,Docker Swarm会让监视所有容器变得更容易(即从一个中心位置管理它们)。
我正在考虑的另一个选项是watchtower,它可以在运行其中一个容器的每个服务器上运行,作为swarm的替代方案。我唯一的问题是,它没有提供任何用于集中管理的编排。
有没有人知道在这种情况下,什么是更好的选择?
发布于 2018-10-09 07:45:49
除了docker service命令之外,Docker swarm在滚动更新方面没有给你任何优势,swarm只为用户提供水平伸缩,并在这些副本前面放置一个负载均衡器,称为“服务”,以及其他一些好处,例如跨群节点复制docker事件。
docker service --force会像预期的那样工作。
但是,您可能应该同时使用这两种方法,docker swarm用于编排,watchtower用于滚动更新。
https://stackoverflow.com/questions/52608767
复制相似问题