技术与生活 / 一篇记录
Up 和 Healthy,说的是不同层次的事
进程存在与业务接口能够响应是不同状态,健康检查要覆盖最小可用路径。
容器 Up 说明入口进程仍在运行,Healthy 则取决于配置的探测命令。应用卡死、依赖不可达或内部错误时,进程可能没有退出,业务却已经不可用。
操作与观察
容器名与镜像名仅作示例;操作前先确认目标对象,不直接对不明数据执行清理。
docker inspect --format '{{json .State.Health}}' demo-app
同时检查探测结果、应用日志和真实请求。
让探测只验证清晰的最小能力,再补外部真实请求。健康检查太重会增加负载,太轻又可能一直报正常,需要围绕实际故障模式取舍。
健康状态改变不会在所有部署方式中自动触发重启。需要恢复动作时,应明确由谁执行,避免把健康检查当成完整自愈系统。任何自动恢复都应该保留可追溯日志。
别遗漏这条边界
没有配置 healthcheck 时没有健康状态,不能把空值理解为健康。
参考:Docker 文档。