Agent Skills
返回列表
🔒

Docker 容器健康检查操作手册

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/docker-container-health-check-runbook。

技能介绍

要解决的问题

容器「没崩」不等于「健康」。Docker 默认只报告进程是否存活:docker ps 里状态是 Up,也可能是应用线程死锁、请求超时或文件句柄耗尽。真实故障往往表现为资源逼近上限、网络端点不可达、挂载卷内容异常,但这些信号分散在 docker inspect、docker stats 和 Docker Engine API 的输出里,手工逐条排查耗时且容易漏项,多容器、多主机的部署里尤其明显。

技能如何工作

技能按固定顺序收集证据,而不是凭经验猜:

  • 状态与配置:通过 docker inspect 读取 State、重启策略、健康检查定义与退出码,区分启动失败和运行中退化。
  • 资源画像:用 docker stats 抓取 CPU、内存与 I/O 实际占用,与部署中声明的 --cpu-limit、--memory 等限制对照,找出逼近上限或被节流的容器。
  • 网络与存储:通过 Docker Engine API 核对网络端点可达性、IP/端口分配,以及卷挂载点的挂载与读写完整性,把「容器内应用故障」和「宿主侧挂载丢失」分开。

结果按检查项组织,每项标注数据来源命令,可直接贴进运维群作为证据。

适用边界与注意点

  • 只诊断,不自愈:技能负责定位与归因,修复、重启、扩缩容仍由人工或编排层执行。
  • 需要宿主访问权限:docker stats 与 Engine API 调用要求在 Docker 宿主或等价权限环境运行,纯托管容器运行时可能只暴露部分接口。
  • 版本与命名:Docker Engine 发布包使用 docker- 前缀(如 Docker Engine 29.0.0 对应 docker-v29.0.0)。资料提取自 moby/moby 的 README;Moby 是 Docker 为推进软件容器化创建的开源项目,其组件最初来自 Docker Project 的开源部分。不同发行版的命令输出和 API 字段可能略有差异,docker- 前缀与 Engine 版本号对不上时,先核对实际安装版本。
  • 非容器故障:内核、网络策略、存储后端问题不在诊断范围内,但检查结果可作为排除依据。

使用场景

  • 容器状态显示 Up 但接口超时时,诊断 CPU/内存限额、网络连通性与卷挂载是否异常。
  • 发布后启动失败或反复重启时,通过 inspect 读取退出码、重启策略与健康检查定义定位原因。
  • 多容器共享宿主网络或卷时,核对 IP/端口分配与挂载完整性,区分应用故障和宿主侧配置问题。
  • 需要为故障复盘留证时,按检查项导出资源与网络诊断结果,标注每项的数据来源。

适合人员

  • 负责生产 Docker 集群的平台工程师,需要在值班时快速判断容器是否真的健康。
  • 排查容器化服务故障的 SRE,需要按统一流程采集 inspect、stats 与 Engine API 证据。
  • 管理容器宿主的运维人员,需要在改动网络、限额或挂载后验证实际运行状态。
  • 参与故障复盘的研发或运维,需要可复核的诊断记录而不是主观结论。