Docker容器健康检查是什么

发布时间:2021-12-13 11:46:53 作者:iii
来源:亿速云 阅读:204

本篇内容主要讲解“Docker容器健康检查是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Docker容器健康检查是什么”吧!

Docker 容器健康检查指的是在 Dockerfile 中使用 HEALTHCHECK 指令对容器的运行状态进行检查, 并在 docker ps 的 STATUS 栏显示 healthy/unhealthy。

HEALTHCHECK 指令有两种格式:

HEALTHCHECK 指令告诉 Docker 如何测试一个容器,以检查它是否仍在工作。 这可以检测到一些情况,例如 web 服务器陷入无限循环,无法处理新的连接,即使服务器进程仍在运行。

当容器指定了健康检查时,除了正常状态外,它还具有健康状态。此状态初始为 starting。 只要健康检查通过,它就会恢复到 healthy(无论它以前处于什么状态)。在连续失败一定次数后,它就会变得 unhealthy

CMD 之前可以出现的选项有:

运行状态检查首先会在容器启动后的 interval 秒内运行,然后在前一次检查完成后的 interval 秒内再次运行。

如果一次状态检查花费的时间超过 timeout 秒,则认为这次检查失败。

容器的运行状态检查连续失败 retries 次才会被视为不健康。

start period 为需要时间启动的容器提供初始化时间。在此期间的探测失败将不计入最大重试次数。 但是,如果在启动期间健康检查成功,则认为容器已启动,所有连续失败的情况都将计算到最大重试次数。

Dockerfile 中只能有一个 HEALTHCHECK 指令。如果列出多个,则只有最后一个 HEALTHCHECK 才会生效。

CMD 关键字后面的命令可以是 shell 命令(例如 HEALTHCHECK CMD /bin/check-running)或 exec 数组(与其他 Dockerfile 命令一样,有关详细信息,请参见 ENTRYPOINT)。

command 的退出状态表示容器的健康状态。可能的值是:

例如,每五分钟左右检查一次 web 服务器是否能在三秒内为站点的主页提供服务:

HEALTHCHECK --interval=5m --timeout=3s \
  CMD curl -f http://localhost/ || exit 1

为了帮助调试失败的探测,command 写在 stdout 或 stderr 上的任何输出文本(UTF-8编码)都将存储在健康状态中,并且可以通过 docker inspect 进行查询。 这样的输出应该保持简短(目前只存储前4096个字节)。

当容器的健康状态发生变化时,将生成一个具有新状态的 health_status 事件。

到此,相信大家对“Docker容器健康检查是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. docker容器是什么?
  2. docker容器个是什么系统

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker

上一篇:Oracle Vault是什么

下一篇:数据库中如何使用CREATE TABLESPACE

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》