Leonurus-free

docker容器中restart启动区别

在 Docker 中,--restart=always--restart=unless-stopped 都是用来控制容器在退出时是否自动重启的策略,但它们的触发条件有细微差别:


1. --restart=always


2. --restart=unless-stopped


对比示例

场景 --restart=always --restart=unless-stopped
容器进程正常退出 (exit 0) ✅ 重启 ✅ 重启
容器进程崩溃 (exit 非0) ✅ 重启 ✅ 重启
手动执行 docker stop ✅ 重启 不重启
Docker 守护进程重启 ✅ 重启 ✅ 重启

如何设置?

# always 策略
docker run -d --restart=always nginx

# unless-stopped 策略
docker run -d --restart=unless-stopped nginx

总结