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

  1. --restart=always:

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

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

主要区别总结:

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

选择建议:

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

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐