首页/云/Docker 容器速查/unhealthy 健康检查失败定位
本包目录(366 条)
基础命令50 条镜像与构建107 条网络与存储52 条Compose 编排55 条资源与安全50 条
容器排障52 条

unhealthy 健康检查失败定位

unhealthy 是健康检查命令失败:读 inspect 的 Health.Log 看最近几次输出与退出码,手动复现同一命令,再核对 start_period/interval/timeout。

Docker 容器速查云更新于 2026-10-12
证据State.Health.Log 数组(输出 + ExitCode)
复现docker exec 手跑同命令
时序start_period 覆盖慢启动、retries 容忍抖动

示例

示例
docker inspect -f '{{json .State.Health}}' web | head -c 2000
docker exec web sh -c 'curl -fsS http://127.0.0.1:8080/health; echo rc=$?'
健康检查只认退出码 0,重定向或管道会让退出码来自后段命令,写检查脚本时要注意。

易错点

  • 启动慢的服务没配 start_period 会被反复标记 unhealthy,重启策略一开就循环
  • 检查命令依赖的工具(curl/wget)不在镜像里时永远不健康,用 sh 内置能力写检查

数据来源与参考

  • Docker 官方文档:HEALTHCHECK 与 docker inspect Health(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌