极速体验docker容器健康 (2)

前面在创建容器时的health-retries参数的值是10,意味着localhost:8080/getstate连续10次返回码非200才会被判定为不健康,因此,在控制台连续十次输出step probe return fail之前,执行docker ps命令观察容器状态,应该还是healthy,超过十次step probe return fail输出之后,再去看容器状态,就变成了healthy:

(base) zhaoqindeMacBook-Pro:~ zhaoqin$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 070e56cc99f2 bolingcavalry/dockerhealthcheck:0.0.1-SNAPSHOT "java -Xms1g -Xmx1g …" 18 minutes ago Up 18 minutes (unhealthy) 0.0.0.0:8080->8080/tcp healthcheck

恢复健康状态:在浏览器输入192.168.0.3:8080/setstate?state=true,这样localhost:8080/getstate接口的返回码又变成了200,观察控制台,只要"step probe return success"输出一次,容器健康状态就恢复为healthy了;

观察容器事件

在控制台输入docker events --filter event=health_status,即可观察宿主机上所有的容器健康状态事件;

按照上面的操作,在浏览器输入192.168.0.3:8080/setstate?state=true或者192.168.0.3:8080/setstate?state=false,将容器的健康状态转变几次,可以观察到容器事件变化:

(base) zhaoqindeMacBook-Pro:~ zhaoqin$ docker events --filter event=health_status 2019-10-20T12:19:18.349588676+08:00 container health_status: unhealthy 2d538f8752ae1e94ce23f34b7fb71c8f2ea3a075df82943ffdbe62c49ad4d6c8 (image=bolingcavalry/dockerhealthcheck:0.0.1-SNAPSHOT, name=healthcheck) 2019-10-20T12:20:19.030857534+08:00 container health_status: healthy 2d538f8752ae1e94ce23f34b7fb71c8f2ea3a075df82943ffdbe62c49ad4d6c8 (image=bolingcavalry/dockerhealthcheck:0.0.1-SNAPSHOT, name=healthcheck)

至此,docker容器健康体验完毕,我们已经对此功能有了基本认识,接下来实战中,我们会尝试让自己的应用容器支持健康检查功能;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwpwg.html