我想在不停机的情况下更新docker swarm服务。问题是我没有足够的资源来进行服务复制。反正有吗?
答案 0 :(得分:1)
swarm模式的默认设置是在启动容器之前停止容器。在17.05中添加了pull request (#30261),可选择在停止旧实例之前启动新实例。其语法是:
docker service update --update-order start-first ...
尚未添加到更新堆栈中,您可以在issue #32586上跟踪该请求。
答案 1 :(得分:1)
根据文档,您可以在docker-service文件上使用order属性
订单:更新过程中的操作顺序:
,您的docker服务文件将如下所示
version: '3.4'
services:
nginx:
image: nginx
restart: always
deploy:
restart_policy:
condition: on-failure
update_config:
order: start-first
确保您使用的是3.4+版,以使其正常运行
答案 2 :(得分:0)
您要执行的部署类型称为蓝绿部署。我建议按照此博客的步骤进行操作。