Docker 重启策略
Docker 和 Docker Compose 的默认重启策略是 no,也就是不重启。
各种情况下的默认策略
1. docker run 命令
# 默认情况
docker run your-image
# 等同于
docker run --restart=no your-image2. Docker Compose
services:
app:
image: your-image
# 默认 restart: "no" (不重启)3. Dockerfile
# Dockerfile 中无法设置重启策略
# 重启策略只能在运行时设置所有重启策略对比
no (默认)
no (默认)✅ 任何情况下都不重启
❌ 进程崩溃后容器停止
always
always✅ 总是重启,除非手动停止
✅ Docker 守护进程重启后也会重启
❌ 即使手动停止也会重启(除非
docker stop)
on-failure
on-failure✅ 只在非正常退出时重启(退出码非0)
❌ 正常退出(退出码0)不重启
unless-stopped
unless-stopped✅ 总是重启,除非手动停止
❌ 手动停止后不会重启
实际测试各种策略
默认策略测试
对比其他策略
生产环境建议
不同环境的策略选择
开发环境:
测试环境:
生产环境:
验证当前策略
查看容器的重启策略
Docker Compose 中查看
总结
关键信息:
默认策略:
no(不重启)推荐生产策略:
unless-stopped开发调试: 保持默认
no如果不设置: 容器崩溃后就停止,需要手动重启
Last updated
Was this helpful?