docker --restart=unless-stopped 和 --restart=always 的区别

TroubleMaker_0 2024-09-09 13:07:04 阅读 58

Docker 容器的 <code>--restart 标志用于定义容器的重启策略。--restart=unless-stopped--restart=always 这两个选项有一些细微但重要的区别:

--restart=always:

容器将始终尝试重启,无论它是如何停止的。如果容器崩溃,它会自动重启。如果Docker守护进程重启,容器也会自动启动。即使容器被手动停止(如使用 docker stop 命令),当Docker守护进程重启时,它也会重新启动。

--restart=unless-stopped:

容器会在崩溃时自动重启。如果Docker守护进程重启,容器也会自动启动。关键区别:如果容器被手动停止(如使用 docker stop 命令),它不会在Docker守护进程重启时自动启动。

主要区别总结:

always 策略会在所有情况下尝试重启容器,包括手动停止后。unless-stopped 策略尊重手动停止的决定,不会在手动停止后自动重启容器。

选择建议:

如果您希望容器始终运行,无论发生什么,选择 always。如果您希望能够手动停止容器并保持停止状态,即使在Docker重启后,选择 unless-stopped

这个选择对于管理和维护容器很重要,特别是在需要临时停止某些服务或进行维护时。unless-stopped 通常被认为是更灵活的选项,因为它允许管理员在需要时手动控制容器的状态。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。