Docker 容器健康检查机制
在分布式系统中,经常需要利用健康检查机制来检查服务的可用性,防止其他服务调用时出现异常。 对于容器而言,最简单的健康检查是进程级的健康检查,即检验进程是否存活。Docker Daemon会自动监控容器中的PID1进程,如果docker run命令中指明了restart policy,可以根据策略自动重启已结束的容器。在很多实际场景下,仅使用进程级健康检查机制还远远不够。比如,容器进程虽然依旧运行却由于应用死锁无法继续响应用户请求,这样的问题是无法通过进程监控发现的。 在Kubernetes提供了Liveness与Readness探针分别对Container及其服务健康状态进行检查。阿里云容器服务也提供了类似的服务健康检查机制。 Docker 原生健康检查能力 而自 1.12 版本之后,Docker 引入了原生的健康检查实现,可以在Dockerfile中声明应用自身的健康检测配置。 HEALTHCHECK 指令声明了健康检测命令,用这个命令来判断容器主进程的服务状态是否正常,从而比较真实的反应容器实际状态。 HEALTHCHECK 指令格式: HEALTHCHECK [选项] CMD &...






