Docker 的重启策略对比

6 min read
重启策略 命令参数 使用场景与分析
不重启 --restart=no 适用于短期运行或一次性任务,不需要自动重启。
总是重启 --restart=always 适用于需要持续运行的服务,无论何种原因导致的停止都会重新启动。
出错时重启 --restart=on-failure 仅在容器非正常退出(返回非零状态)时重启,适用于需要稳定运行但允许手动停止的应用。
除非手动停止才不重启 --restart=unless-stopped 容器会一直运行,除非被明确地停止。适用于几乎所有需要长时间运行的场景。

不重启 (--restart=no)

这个选项通常用于开发环境或者测试环境,或者一些只需要运行一次的任务(例如数据迁移脚本)。

总是重启 (--restart=always)

这适用于生产环境中需要24/7运行的服务。这个选项确保了即使容器由于某种原因失败或者所在的主机被重启,容器也会自动重启。

出错时重启 (--restart=on-failure)

这个选项适用于需要高可用性,但又允许手动干预的服务。也就是说,如果容器由于某种错误而停止(退出代码非零),Docker会尝试重新启动它。

除非手动停止才不重启 (--restart=unless-stopped)

这个选项在很多场景都非常有用,特别是那些需要长时间运行,但又可能需要进行维护或更新的服务。