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

docker-compose.yml中restart与deploy.restart_policy的区别及使用选择

1. 二者的配置逻辑差异

  • restart是单机docker-compose部署场景的生效参数,对应docker run命令的--restart配置项,仅在使用docker-compose up/down命令单机启动容器时生效,控制单节点上容器的重启行为,可选值包含no/always/on-failure/unless-stopped。
  • deploy.restart_policy是Docker Swarm集群部署场景的专属参数,仅在使用docker stack deploy命令向Swarm集群部署服务时生效,单机docker-compose启动时会直接忽略该配置。除了基础的重启触发条件condition外,还支持配置delay(重启间隔)、max_attempts(最大重试次数)、window(重启判断窗口)等精细化参数,面向集群服务的高可用设计。

2. 实际使用的选择规则

  • 仅单机使用docker-compose运行服务:直接使用restart参数即可,配置deploy.restart_policy不会产生任何效果。
  • 使用Docker Swarm集群部署服务:使用deploy.restart_policy即可,此时顶层的restart参数会被Swarm集群忽略。
  • 若需要compose文件同时兼容单机和Swarm两种部署场景,可以同时配置两个参数,二者各自在对应场景生效,不会产生冲突。

3. 二者不存在版本迭代替代关系

两个参数是针对不同部署场景设计的并行功能,没有新旧替代的迭代关系:

  • restart从compose v2版本开始就已存在,始终是单机部署场景下的标准重启配置项,目前仍在官方规范中正常维护。
  • deploy.restart_policy是compose v3版本新增的能力,专门用于补充Swarm集群部署时的服务重启配置能力,没有替换单机restart参数的设计目标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:24:07