docker inspect 是查看容器详细状态最可靠的方式,返回完整 json 结构,涵盖网络、挂载、环境变量、健康检查、启动时间、退出码等全部运行时信息。
直接用 docker inspect 是查看容器详细状态最可靠的方式,它返回完整 json 结构,涵盖网络、挂载、环境变量、健康检查、启动时间、退出码等全部运行时信息。
只看关键状态字段
快速确认容器是否在运行、已退出或重启中:
-
docker inspect --format='{{.State.Status}}' <container></container>→ 输出 running、exited、paused 或 restarting -
docker inspect --format='{{.State.ExitCode}}' <container></container>→ 查看上次退出码(仅对已停止容器有效) -
docker inspect --format='{{.NetworkSettings.IPAddress}}' <container></container>→ 获取容器内网 IP(适用于默认 bridge 网络)
重点查健康检查状态
如果容器定义了 HEALTHCHECK,健康信息藏在 .State.Health 下:
-
docker inspect --format='{{.State.Health.Status}}' <container></container>→ 返回 healthy、unhealthy 或 starting -
docker inspect --format='{{.State.Health.FailingStreak}}' <container></container>→ 显示当前连续失败次数 -
docker inspect --format='{{json .State.Health.Log}}' <container></container>→ 查看最近几次检查的输出、时间戳和退出码,用于定位失败原因
批量与格式化输出
运维排查时提高效率的实用写法:
- 列出所有容器名 + 状态 + 健康状态:
docker ps -q | xargs -r docker inspect --format='{{.Name}}: {{.State.Status}} (Health: {{.State.Health.Status}})' - 提取多个字段制表显示:
docker inspect --format='table {{.Name}}\t{{.State.Status}}\t{{.State.Health.Status}}\t{{.NetworkSettings.IPAddress}}' <container></container> - 查某类容器(如名字含 “api”)的健康汇总:
docker ps -f name=api -q | xargs -r docker inspect --format='{{.Name}} → {{.State.Health.Status}}'
配合其他命令交叉验证
inspect 提供静态快照,结合动态命令更全面:
-
docker ps -a看整体存活情况,再用inspect深挖异常容器 -
docker stats --no-stream <container></container>查实时资源占用,和inspect中的.State.MemoryStats对照 -
docker logs --tail 20 <container></container>和inspect的健康日志一起看,判断是启动失败还是运行中崩溃











