【问题标题】:Choose restart policy for my services in the docker-compose file在 docker-compose 文件中为我的服务选择重启策略
【发布时间】:2020-06-26 16:59:48
【问题描述】:

我在为我的服务选择重启策略时遇到问题。

我的应用程序需要两个容器才能运行。

  • 已部署 .war 文件的 Tomcat 容器
  • 带有 Postgre 数据库的 Postgre 容器

我的问题:

有人有选择重启策略的经验吗?

我的两个服务是否需要相同的重启策略?

我会直接选择 on-failure 策略。当容器中发生崩溃时,它应该立即重新启动。

官方 Docker 文档:https://docs.docker.com/config/containers/start-containers-automatically/#:~:text=Restart%20policy%20details,-Keep%20the%20following&text=A%20restart%20policy%20only%20takes,going%20into%20a%20restart%20loop.

【问题讨论】:

  • 您实际上遇到了什么麻烦?你用“docker-compose”标记了这个; Compose 与大多数 docker run 选项等效,包括 restart: 设置。
  • 我没有遇到任何问题,我只是想知道是否有基于容器内运行的重启策略的最佳实践。也许在容器内运行数据库时,“总是”重启策略是最好的,例如,这就是我想通过这个问题找到的。

标签: docker docker-compose docker-container


【解决方案1】:

我们已经尝试过on-failure,并且基于某些项目和服务的特殊需求。

我认为一切都取决于您的需求。你考虑过你的需求吗?这里有一些问题:

  1. 您需要链接容器以正确的顺序启动吗?

重启策略确保链接的容器以正确的顺序启动。

  1. 您是否打算使用流程管理器来启动容器?

Docker 建议您使用重启策略,避免使用进程管理器来启动容器。

  1. 您是否尝试过所有策略并确定满足您项目需求的策略?
  • on-failure[:max-retries]
  • 总是
  • 除非停止

【讨论】:

  • 我们想使用 docker 重启策略。这两个容器是链接的,所以如果链接的容器在其他容器失败时也重新启动,那就太好了。当达到 Max Retries 时,容器不会再次自动启动。我们监控运行容器的节点。如果我们将最大重试次数设置为例如 10,当容器无法启动十次时,我们很容易看出是否有问题。我认为在应用于 Tomcat 容器或 Postgres 容器时有重启策略的最佳实践。
猜你喜欢
  • 1970-01-01
  • 2019-02-13
  • 2018-12-16
  • 2016-11-21
  • 1970-01-01
  • 1970-01-01
  • 2020-06-30
  • 2018-05-05
  • 2020-07-03
相关资源
最近更新 更多