可以使用 docker update 动态修改运行中容器的重启策略:支持 no、on-failure[:max]、always、unless-stopped 四种策略,命令格式为 docker update --restart=<策略> <容器名或ID>,修改后立即生效,可用 docker inspect 验证。
可以直接用 docker update 修改正在运行容器的重启策略,不用停容器、不删重建、不影响数据卷和当前状态。
支持的重启策略类型
四种策略中,全部都支持 通过 docker update 动态设置:
- no:取消自动重启,恢复默认行为
-
on-failure[:max]:仅非零退出码时重启,可加次数限制(如
on-failure:3) - always:任何退出都重启,包括手动 stop 后宿主机重启也会拉起
- unless-stopped:最常用生产策略,宿主机重启后自动启,但手动 stop 后不再恢复
修改命令写法
语法统一为:docker update --restart=<策略> <容器名或ID>
- 设为开机自启且可控:
docker update --restart=unless-stopped nginx-prod - 限制失败重试最多 2 次:
docker update --restart=on-failure:2 batch-worker - 彻底关闭自动重启:
docker update --restart=no temp-debug - 强制始终重启(慎用):
docker update --restart=always db-main
验证是否生效
改完立刻生效,用 inspect 查看当前策略:
docker inspect -f '{{.HostConfig.RestartPolicy.Name}}' nginx-prod
输出 unless-stopped 或对应策略名即表示已更新成功。注意:该命令只对运行中容器有效;已停止的容器需先启动再 update,或直接用 run 重建。


















