You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker Swarm中实现服务的逐步重启

Docker Swarm 多副本服务逐步重启实现方案

Docker Swarm 原生内置滚动更新/重启能力,完全支持你要求的逐个重启副本的需求,无需额外工具即可实现。

核心配置参数

你可以通过3个核心参数控制重启行为:

  • --update-parallelism:定义每批同时操作的副本数量,要实现逐个重启只需将该值设为1
  • --update-delay:定义两批副本重启之间的等待间隔,可根据自身服务启动耗时配置(比如30s),确保上一个副本完全启动正常后再处理下一个
  • --update-failure-action:定义重启失败后的处理逻辑,推荐设为pause,一旦某个副本重启异常会自动暂停后续操作,避免故障范围扩大

具体操作步骤

1. 新建服务时提前配置重启策略

以3副本的nginx服务为例,配置逐副本重启、间隔30s、失败暂停的规则:

docker service create --name nginx --replicas 3 \
  --update-parallelism 1 \
  --update-delay 30s \
  --update-failure-action pause \
  nginx:latest

2. 为已有服务更新重启策略

如果服务已经在运行,直接更新配置即可:

docker service update \
  --update-parallelism 1 \
  --update-delay 30s \
  --update-failure-action pause \
  你的服务名称

3. 手动触发逐步重启

需要执行月度重启操作时,执行以下命令即可自动按配置的规则逐副本重启:
docker service update --force 你的服务名称

重启过程中你可以执行docker service ps 你的服务名称查看每个副本的重启进度,Swarm默认会先启动新副本、确认健康检查通过后再下线旧副本,只要服务健康检查配置正确,重启过程不会出现服务中断。

内容的提问来源于stack exchange,提问作者dariush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:06:09