daemon.json 中配置 "default-restart-policy": "unless-stopped" 可为所有新创建容器设默认重启策略,需重启 docker 服务生效,显式指定 --restart 时会覆盖该默认值。
在 daemon.json 中配置默认重启策略,只需添加 "default-restart-policy" 字段,值设为 "unless-stopped"、"always" 或 "on-failure:3" 等合法策略即可。该设置会作用于所有新创建的容器(已有容器不受影响),且必须重启 docker 服务才生效。
配置位置与基础写法
Linux 系统路径为 /etc/docker/daemon.json,Windows Desktop 可通过设置 → Docker Engine 编辑,或手动修改 C:\ProgramData\docker\config\daemon.json。
最小可用配置示例:
{
"default-restart-policy": "unless-stopped"
}
注意:JSON 格式必须严格,不能有注释、尾随逗号;若文件不存在,可新建。
支持的策略值及适用场景
-
unless-stopped:宿主机或 Docker 重启后自动拉起,但手动执行
docker stop后不再启动。适合大多数长期服务,兼顾可控性与可靠性 -
always:只要 Docker daemon 启动,就强制重启容器(包括被手动停掉的)。适合核心基础设施组件,如 etcd、registry,建议配合
HEALTHCHECK使用 - on-failure:5:仅当容器以非零退出码终止时重启,最多重试 5 次。适合依赖外部服务(如数据库)的应用,避免连接失败导致无限循环
- no:显式禁用自动重启,适用于一次性任务或由上层编排系统(如 Kubernetes、systemd)统一管理的容器
验证是否生效
配置保存后,执行:
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
sudo systemctl restart docker
然后运行一个新容器(不带 --restart 参数):
docker run -d --name test-alpine alpine sleep 30
检查其重启策略:
docker inspect test-alpine | jq '.[0].HostConfig.RestartPolicy'
输出应与你配置的 default-restart-policy 一致。也可用 docker info | grep "Default Runtime" 辅助确认(部分版本会显示默认策略)。
注意事项
- 该配置只影响后续
docker run创建的容器,已存在的容器需重新创建或用docker update --restart=xxx单独更新 - 如果容器启动时显式指定了
--restart,会覆盖daemon.json中的默认值 - 策略中的数字参数(如
on-failure:3)必须写成字符串形式,不能省略引号 - Docker 20.10+ 版本完全支持此字段,旧版本可能忽略或报错,建议先查
docker version










