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

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐