docker service update vs docker stack deploy with existing stack

在使用docker stack deploy部署一组服务后,我对使用docker swarm模式命令更新现有服务表示怀疑.

据我所知,在创建时,每个服务都固定在图像的SHA256摘要上,因此如果您重建并推送图像(使用相同的标记)并尝试运行docker服务更新,则服务图像不会更新(即使SHA256不同).相反,如果再次运行docker stack deploy,则会使用新映像更新所有服务.

我还设法通过使用docker service update –image repository / image:tag< service>来更新服务映像.这是这些命令的正常行为还是有些我不理解的东西?

我正在使用Docker 17.03.1-ce

最佳答案 Docker堆栈部署
documentation说:

“从群组中的compose或dab文件创建和更新堆栈.必须针对管理器节点运行此命令.”

所以你描述的行为是预期的.

Docker服务更新documentation不是很清楚,但你自己说它只能运行–image repository / image:tag< service>所以标志是更新图像所必需的.

你有两种方法可以达到你想要的效果.

点赞