gpt4 book ai didi

docker - 强制有问题的 docker 容器自行重启?

转载 作者:行者123 更新时间:2023-12-02 18:08:49 25 4
gpt4 key购买 nike

我经常遇到一些 docker 容器应用程序的问题,简单的解决方法是重新启动 docker 容器。不幸的是,这是一个手动过程,我们已经破坏了功能,直到我们发现哪个容器有问题需要重新启动。这让我想知道是否有一种在某些情况下自动重启 docker 容器的好技术?

现在我正在考虑 --autorestart 的组合标志,并在应用程序遇到已知问题时强制关闭。但是,我不确定这是否是最好的方法。

最佳答案

如果您的应用程序能够检测到问题,您可以轻松地让容器自行重启。两件重要的事情是 --restart标志并且应用程序在检测到问题时存在。

在后台启动容器( -d )并设置一个 restart policy :docker run --restart unless-stopped -d [IMAGE] [COMMAND]
使用重启策略,您可以控制 Docker 在命令存在时执行的操作。使用 --restart unless-stopped告诉 Docker 总是重新启动命令,无论命令的退出代码是什么。这样,您可以让您的应用程序检查其健康状况,并在必要时使用 exit(1)或类似于关机的东西。发生这种情况时,Docker 将遵循其重启策略并启动一个新容器。

尽管 Docker 并不真正关心返回码,但我会确保应用程序存在的状态码不是 0。表明一个问题。如果您确实想分析日志或使用脚本中的容器,这在以后可能会很有用。

编辑:

我最初使用 --restart always在答案中,但经过一些考虑,我认为使用 --restart unless-stopped 可能更好这里。它的行为更可预测,因为 docker stop实际上停止服务。与 --restart always , docker stop将停止容器,然后再次启动一个新容器,这不一定是您想要或期望发生的。

关于docker - 强制有问题的 docker 容器自行重启?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44570890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com