docker-compose 配置文件中 restart都有哪些参数 以及含义?

Docker Compose 中的 restart 选项用于定义容器在退出或停止后应该如何重启。以下是一些常见的 restart 参数及其含义:

  1. **”no”**(默认值):表示不会自动重启容器。如果容器退出或停止,它将保持在停止状态,不会自动重新启动。

  2. **”always”**:表示无论容器如何退出,都会自动重启。这意味着如果容器崩溃或被手动停止,Compose 会尝试自动重新启动它。

  3. **”on-failure”**:表示只有在容器以非零退出状态(即失败)退出时才会自动重启。如果容器以零退出状态正常停止,则不会自动重新启动。

  4. **”unless-stopped”**:表示容器会自动重启,除非你手动停止它。这个选项在大多数情况下是持久的,只有在你显式停止容器时才会停止。

  5. **”on-abnormal”**:表示只有在容器以非正常方式退出时(例如,由于主机上的内存不足)才会自动重启。这个选项通常用于处理异常情况。

  6. **”on-reboot”**:表示容器会在宿主机重新启动时自动重启。这可以确保容器在宿主机重启后保持运行状态。

  7. “always” 和 “unless-stopped” 组合:可以将这两个选项组合在一起,以确保容器在退出时自动重启,并在手动停止时也重启。例如:restart: always 会一直重启容器,而 restart: unless-stopped 会在容器崩溃时重启,但在手动停止时不会重启。

这些选项可以根据你的需求来选择,以确保容器在各种情况下的行为是符合预期的。不同的应用场景可能需要不同的重启策略。