docker - 如何使用 Docker 健康检查?
问题描述
根据https://docs.docker.com/engine/reference/builder/#healthcheck,我们可以对容器进行健康检查,给它们一些时间来启动,设置重试次数和超时等。
问题是:使用docker container ls
来查看容器的状态是这个功能的唯一用途吗?我知道让人工查看是否有任何容器不健康并决定如何处理这些容器非常方便。
Docker 守护进程中是否有关于如何处理那些不健康的容器的任何后果或自定义逻辑?是否可以将其配置为自动重新启动这 N 次以尝试使它们起死回生?或任何其他程序化用途?
解决方案
Docker 在 swarm 模式下使用健康检查,自动替换不健康的容器,并减慢滚动更新以等待容器完成启动并恢复健康,然后再替换其他容器。
Docker compose 还有一些选项可以在部署具有依赖项的多容器项目时检查健康状态。
除此之外,健康状态只是信息,在容器列表和检查输出中作为容器元数据显示给用户。您可以配置外部监控来检测该状态并做出反应。但是,docker 引擎本身不会重新启动在 swarm 模式之外运行的不健康容器。
推荐阅读
- javascript - Bootstrap Carousel 跳跃高度
- linux - 如何使用 bash 自动化 linux cut 命令
- php - Codeigniter 模块 (HMVC) 中的数据表 Ajax 调用
- bash - 在文件中进行特定搜索并转储到其他文件的命令
- visual-studio - Visual Studio 热键无法正常工作
- php - 在主题类中找不到 PhpStorm 引用的方法
- batch-file - 从传递的变量中删除尾随空格
- android - 无法将编译好的sdk版本升级到27
- animation - 如何让 Highstock 工具提示像 Highcharts 一样制作动画?
- plot - 如何在 Julia 中绘制向量场?