docker 如何在容器内部关闭容器?

新手上路,请多包涵

我们的容器中有多个服务 现在想在其中任意一个服务启动失败时都将容器关闭 有什么办法吗

阅读 3.1k
4 个回答
✓ 已被采纳

docker 有个健康检查,例如docker run 可以增加 --health-cmd="curl -fs http://localhost/ || exit 1" , --health-cmd 可以自定义命令判断容器内部的程序是否正常,不正常就退出,dockerfile和docker compose也有指定的参数进行健康判断

建议不要在容器里使用supervisor,可以把服务放在不同的容器里。让docker去做容器的健康检查。

docker 自带的健康检查有一个 retries 参数,可以在健康检查失败N次后将容器停止。

设法让主进程退出(正常、非正常退出都可以)容器就关闭了。

让supervisor启动程序的方式改成都通过一个shell代理启动。在shell里判断当前程序启动失败就直接kill -9 1

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题