云计算核心技术Docker教程:Dockerfile文件健康检查命令的详细说明

日期:2020-10-30 20:58:10 来源:普利财经网

dockerfile文件健康检查指令是告诉docker如何确定容器的状态是否正常,这是docker1.12引入的新指令。

Healthcheck语法格式:

HealthCheck[Options]cmd:设置检查容器健康状况的命令

无健康检查:如果底层镜像有健康检查指令,请使用这一行阻止它的健康检查指令。

没有健康检查指令,码头引擎只能通过容器中的主进程是否后退来确定容器是否处于异常状态。在许多情况下,这是很好的,但如果程序进入死锁状态,或者进入死循环状态,应用程序进程就不会退出,但容器将无法再提供服务。在1.12之前,停靠者不会检测到容器的这种状态,因此不会重新安排时间,从而导致一些容器已经无法提供服务,但仍在接受用户请求。

从1.12开始,docker提供了一个健康检查指令,通过它指定一行命令来确定容器主进程的服务状态是否仍然正常,从而反映了容器的实际状态。

当镜像指定健康检查指令时,使用它启动容器,开始的初始状态就会正常,在健康检查指令检查成功后,如果连续失败一定次数,则会变得不健康。

Healthcheck支持以下选项:

Interval=:两次健康检查之间的间隔,默认为30秒

timeout=:HealthCheck命令运行超时,如果超过此时间,则健康检查被视为失败,默认为30秒

当RETRE=:在一行中出现指定次数的情况下失败时,它将容器状态视为默认的三次(对于不健康的)。

和cmd一样,健康检查只能出现一次,如果写了多个,则只有最后一个生效。

健康检查[Options]cmd后的命令以与Enrypoint相同的格式分为shell格式和exec格式。该命令的返回值决定了健康检查的成功与否:0:成功;1:失败;2:保留,不要使用此值。

如果健康检查的失败次数持续超过重试次数,状态就会变得(不健康)。

为了帮助排除障碍,健康检查命令(包括stdout和stderr)的输出保存在健康状态,可以在码头检查中查看。

点击热线

友情链接