centos7下安装docker(26如何配置Health Check)

时间:2022-03-01 21:34:44

Docker只能从容器启动进程的返回代码判断其状态,而对于容器内部应用的运行状况基本没有了解

执行docker run命令时,通常根据dockerfile中的CMD或ENTRYPOINT启动一个进程,这个进程状态就是docker ps STATUS显示容器的状态

centos7下安装docker(26如何配置Health Check)

命令显示:

1.有的容器正在运行,状态为UP

2.有的容器已经停止了,状态是Exited(0)

3.有的则因发生故障停止了,退出代码非0,例如Exited(137),Exited(1)等

即使容器状态是UP,也不能保证应用没有问题。web server虽然没有崩溃,但如果总是返回HTTP 500-Internal Server Error,对于应用来说就是很严重的故障

如何从应用的业务层面检查容器的状态呢?答案是health check。

docker 支持的health Check可以是任何一个单独的命令,Docker会在容器中执行该命令,如果返回0,容器被认为是healthy,如果返回1,则为unhealthy

对于提供HTTP服务接口的应用,常用的Health check是通过curl检查HTTP状态吗,比如:

curl --fail http://localhost:8080/ || exit 1

如果curl命令检测到任何一个错误的HTTP状态码,则返回1,health check失败

下面举个例子: