【发布时间】:2016-12-20 14:20:28
【问题描述】:
环境
- 码头工人 1.12
- 在 Ubuntu 16.04 上集群
如果服务更新未更改任何参数但 docker hub 映像已更新,是否有办法强制滚动更新已运行的 docker swarm 服务?
示例:我部署了服务:
docker service create --replicas 1 --name servicename --publish 80:80 username/imagename:latest
我的构建过程已经更新了 docker hub 上的最新镜像,现在我想再次拉取最新的。
我试过跑步:
docker service update --image username/imagename:latest servicename
当我按照这个过程进行操作时,docker 不会拉最新的,我猜它假设因为我想要最新的并且 docker 已经拉了一个图像:最新的,所以没有什么可做的。
我唯一的解决方法是删除服务 servicename 并重新部署。
【问题讨论】:
-
这不起作用。我向 Docker 提出了一个问题:github.com/docker/docker/issues/26978 解决方法是添加无意义的元数据或部署信息等,就像之前评论的那样: > 我能够通过使用容器标签来触发滚动更新。我添加了 --container-label-add deploy="1.0.1"。所以每次我更改标签时,每个服务都会拉取并重新部署服务。 – longday 8 月 14 日 15:53
标签: docker docker-swarm