docker的健康检查
官方文档:
https://docs.docker.com/engine/reference/builder/
HEALTHCHECK两种格式:
- HEALTHCHECK [OPTIONS] CMD command 用command检查容器的健康状态
- HEALTHCHECK NON 不支持任何健康检查
OPTIONS支持如下:
–interval=DURATION (default: 30s)
–timeout=DURATION (default: 30s)
–start-period=DURATION (default: 0s)
–retries=N (default: 3)
HEALTHCHECK --interval=5m --timeout=3s
CMD curl -f http://localhost/ || exit 1
每5分钟检查是否可以3s内获取一个web的主页,用这个CMD作为健康检查的命令
查看容器健康检查的详细
docker container inspect containerid 输出如下:
"Health": {
"Status": "healthy",
"FailingStreak": 0,
"Log": [
{
"Start": "2021-11-13T04:31:18.1963457Z",
"End": "2021-11-13T04:31:18.2587589Z",
"ExitCode": 0,
"Output": " % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0Hello Container World! I have been seen 1 times and my hostname is b5e7d1d58dc6.\n\r100 81 100 81 0 0 27000 0 --:--:-- --:--:-- --:--:-- 27000\n"
},
**注意!!**docker container的状态只要是up的,depends_on 该容器的就可以启动,除非添加如下参数配置:
depends_on:
flask-demo:
condition: service_healthy