📜  Docker –健康检查指令

📅  最后修改于: 2021-04-17 02:42:34             🧑  作者: Mango

HEATHCHECK指令确定Docker容器的状态。它确定容器是否在正常状态下运行。它定期执行运行状况检查。初始状态为启动,并且在成功检查之后,状态变为健康。如果测试仍然失败,那么它将变成不健康的状态

HEALTHCHECK指令提供的一些选项是–

  • –interval = :确定两次健康检查之间的间隔。默认间隔为30秒。
  • –timeout = :如果HEALTHCHECK命令超过指定的持续时间,则将其分类为失败。默认持续时间为30秒。
  • –retries = :如果达到指定的重试次数,则认为该状态不健康。默认重试次数为3。

在这篇文章中,我们将看到如何在您的Dockerfile使用健康检查命令的实际例子。我们将创建一个Nginx容器并确定其状态。请按照以下步骤检查dockerfile的运行状况:

步骤1:建立Dockerfile

您可以使用以下模板创建Dockerfile。

FROM nginx:latest
HEALTHCHECK --interval=35s --timeout=4s CMD curl -f https://localhost/ || exit 1
EXPOSE 80

在上面的Dockerfile中,我们提取nginx基本映像,并以指定的间隔和超时执行HEALTHCHECK。

第2步:构建Docker映像

我们可以使用build命令来构建Docker Image。

sudo docker build -t healthcheck-demo .

建立形象

步骤3:运行容器

在这里,我们将检查nginx.conf文件是否存在。我们将在运行Docker容器时设置命令。

sudo docker run --name=healthcheck-demo -d
--health-cmd='stat /etc/nginx/nginx.conf 
|| exit 1' healthcheck-demo

/* This line must be without the breaks, it's done for viewing purpose*/

运行容器

步骤4:确定容器的状态

您可以使用inspect命令来确定容器的状态。

sudo docker inspect --format='' healthcheck-demo

在所有运行状况检查期间,您将获得有关容器的所有详细信息以及状态。

容器状态容器的健康

总而言之,在本文中,我们讨论了什么是HEALTHCHECK指令,其用途以及可以与其一起使用的各种选项。我们使用nginx容器通过实际示例进行了演示。