我想停止docker-stack.yml
文件中的所有服务,使用新的映像版本号更新文件,然后启动所有服务。为了一起升级它们,以便它们始终都是最新版本。
我该怎么做呢?我宁愿不删除网络和卷——我的意思是,这docker stack rm
似乎有点矫枉过正?并且docker service scale service-name=0
感觉容易出错?然后需要记住再次更改回> 0。
我想做一个停止一切升级的原因是它更简单:我的应用程序中的服务不需要与彼此不同版本的 API 兼容。永远不会有版本 X 的服务正在运行并且必须与另一个服务的版本 X - 1 通信(相反,所有服务都将使用相同的版本 X。它们使用相同的版本号)。
(如果我问错了问题,请随时告诉我 :- ) 注意:在这种特殊情况下,20 - 30 秒的停机时间是可以的,因为所有容器都会立即停止-升级-重新启动。这适用于 Docker Swarm / Stack,而不是 Docker-Compose(然后可以只做down
and up
)。)