跳到主要内容

CONTAINER & ORCHESTRATION · LAYER 04

容器与编排故障诊断

检查容器退出状态、重启计数、健康探针、资源限制和实际部署配置,定位反复重启、运行但不健康以及调度失败。

本层已发布
3 篇
内容标准
隔离复现 · 证据复核
广告状态
栏目页不加载广告

FIRST-RESPONSE GUIDE

本层负责什么

容器与编排层决定镜像如何启动、配置如何注入、资源如何限制以及实例何时被判定为健康。容器显示 running 并不代表服务可用,反复重启也不一定是平台故障。应把退出状态、事件、探针输出和容器内实际配置一起检查,区分应用失败、配置缺失、资源终止与调度问题。

常见症状

这些现象用于判断排查入口,不代表已经确定根因。先记录原始错误和时间,再执行首轮检查。

  • 容器处于 Restarting、CrashLoopBackOff 或重启计数持续增加
  • 容器保持 running,但健康检查连续失败或流量未被接收
  • 退出码 137、143、配置错误码或 OOMKilled 状态
  • 实例无法调度、镜像拉取失败、挂载或 Secret/Config 注入缺失

首轮检查清单

按顺序执行并保存输出。每一步只改变一个变量,避免让恢复动作覆盖真正的失败证据。

  1. 读取结构化状态保存 State、ExitCode、OOMKilled、RestartCount、Health 和最近事件,不只截取一行 ps。
  2. 检查前一次日志重启循环中优先读取上一个实例的日志,并记录首次致命错误而非后续重复噪声。
  3. 核对实际部署输入对照镜像摘要、命令、环境变量、挂载、Secret、探针和资源限制,确认运行态与声明一致。
  4. 隔离验证单一改动在同一镜像和负载下只修正一个配置或限制,比较退出状态和健康结果。

操作边界

inspect、日志和事件读取通常是只读操作。删除 Pod、强制重建、修改资源限制或暂停探针会改变服务容量;执行前必须确认副本数、流量切换和回滚清单。

何时升级或切换层级

当证据指向其他系统边界,立即带着时间、环境和原始输出交接,避免在当前层重复执行无关操作。

  • 应用主动以非零码退出且配置完整:转给应用与运行时负责人。
  • 节点资源压力、驱逐或运行时守护进程异常:携带节点事件升级给平台团队。
  • 镜像、Secret 或配置供应链不一致:升级给构建发布与权限维护者。

PUBLISHED & VERIFIED

该层已发布的验证文章

这里只列出已发布且通过 V2CE 证据门禁的文章;草稿和未验证内容不会进入列表。

3 条可执行路径
04
已验证 最后复核 2026-08-12

Docker 容器反复重启:用退出码 78 定位缺失配置

先保存首次致命日志、退出码与 RestartCount,再区分配置缺失、OOM、镜像和健康检查;修复后用同镜像验证 PID …

适用环境
Docker 24.0.7 / Compose 2.40.0 / Nginx 1.28 Alpine
验证耗时
约 5 分钟
风险边界
inspect 与日志读取为低风险;关闭重启策略或改配置前先保存原 Compose,生产容器操作需摘流并准备按文件回滚
查看证据与诊断步骤 →
04
已验证 最后复核 2026-08-06

Docker 显示 running,为什么仍是 unhealthy?拆开进程与探针证据

分别读取 PID 1、Health.Log 和容器内端点,判断是错误探针、依赖未就绪,还是主进程已经退出。

适用环境
Docker 24.0.7 / Compose 2.40.0 / Nginx 1.28.3 Alpine
验证耗时
约 10 分钟
风险边界
docker inspect 和容器内只读请求为低风险;探针修改需保留旧镜像/Compose,并避免昂贵或有写副作用的检查
查看证据与诊断步骤 →

NOT SURE YET?

仍无法确定故障层级?

回到诊断地图,从用户看到的第一个异常开始;按“解析 → 连接 → 网关 → 应用 → 数据 → 系统”的顺序保存证据。

返回六层诊断地图 →