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容器通过实际示例进行了演示。