章节摘要:前七部讲"怎么做对",本部讲"做错了怎么查、怎么收场"。排错词条(inspect、events、system df)组成一条取证链:从现象出发、按固定顺序取证据、定位到具体层;治理词条(prune 全家桶、资源限额、日志轮转、最小权限选项)负责日常修剪与加固。本部是全书各部词条的回收站与安全网——出事时翻它,平时用它防事。
阅读完本部,你应当能够:
金句:排错是考古——logs 是遗言,inspect 是档案,events 是监控录像;治理是园艺——定期修剪,别等藤蔓勒死房子。
8.1 故障排查命令词条:inspect、events、system df 的完整词条,加一条"五步问诊路径"把叁部日志、柒部编排状态串成取证链。每个词条都从真实异常出发倒推用法。
8.2 安全加固与清理命令:prune 全家桶的影响面矩阵与分级清理法;资源限额、健康检查、日志轮转、最小权限四件加固工事。治理的关键是"定期做、有边界、可回滚"。
两节是"治病"与"养生"的关系:8.1 的取证链解决已发生的问题,8.2 的工事让问题少发生。清理与加固的命令在前七部都有伏笔,本部收拢成体系:
+------------------+ +------------------+ | 8.1 排错取证链 | --> | 8.2 治理与加固 | | inspect/events | | prune/limits | | 定位具体问题 | | 防止问题复发 | +------------------+ +------------------+ | | +-- 证据源遍布全书:logs/df/编排状态 --+
问:排错该从哪条命令开始? 永远从 ps 起步——它给现象分类(进程不在了/在但行为不对/在且自认健康),分类决定下一步走 logs 还是 events。上来就 inspect 翻 JSON 是最常见的绕路:字段再多,也得先知道问题属于哪一类。
问:prune 会不会误删在用的东西? prune 系列对"有引用"的对象一律手下留情:容器要停着才清、卷要有容器引用才豁免、网络要空了才删。真正的风险窗口是"刚停不久、还没删"的容器与它挂的卷——执行前先 ps -a 过目,是清理现场的最后一道人工闸。
问:加固做多少算够? 看威胁模型。单机实验环境,限额加日志轮转即可;对外服务,最小权限与只读根应是默认;涉密负载还要叠专用方案(本册只覆盖命令面)。每项工事都该能回答"它在防什么",答不上来的加固是仪式不是防御。
前置:叁部的 ps、stats、logs 是取证链的前几步,须已熟练;伍部的卷清理、肆部的仓库清理在本部并入分级清理矩阵。延伸:本部命令是运维交接与故障复盘文档里的常客;健康检查在柒部 7.3 已预演过 Compose 写法,本部补齐 run 形态。过关自测:模拟"容器反复重启、磁盘爆满"两类综合症状,你能不查资料走完取证与处置全流程,并说出每一步在排除什么假设。