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

Docker Swarm中docker stack deploy更新单服务失败是否支持全栈回滚

Docker Swarm 多服务更新失败回滚问题解答

Docker Swarm 原生不支持 stack 部署时单个服务更新失败后自动触发同 stack 下所有服务全局回滚的能力,默认回滚逻辑为单服务维度独立生效。

详细说明

  • 执行docker stack deploy更新时,同 stack 下的所有服务会按照各自配置的更新策略独立执行升级操作,单个服务因健康检查失败触发回滚逻辑时,不会反向修改已经更新成功的其他服务的配置和版本,所以你场景里的serv1、serv2不会因为serv3更新失败自动回滚。
  • 如果你需要实现三个服务全部回滚到更新前版本的需求,可以手动执行单服务回滚命令完成:
    docker service rollback serv1
    docker service rollback serv2
    docker service rollback serv3
    
    每个服务执行回滚命令后,会自动恢复到上一次部署成功的镜像版本、配置参数,且会遵循服务配置的回滚策略完成滚动回滚,不影响业务可用性。
  • 如果你需要实现更新失败自动全局回滚的能力,可以自行编写简单的运维脚本:在docker stack deploy执行完成后,轮询检测同 stack 下所有服务的更新状态,只要检测到任意服务更新失败,就遍历所有服务批量执行docker service rollback命令即可。

小提示:你可以在compose文件中为服务配置update_config.failure_action为rollback,确保单个服务更新失败后会自动回滚到上一版本,避免单个服务停留在异常状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:54:03