Oamc

容器排障:网络、磁盘、日志 · 修改记录

这是 container/docker-troubleshoot.md 的每次改动内容,按时间从新到旧。其他文章一起提交的部分不会出现在这里。

#1 2026-10-18 +77 −0 docs: 新增容器/安全分类,补 Windows 组策略与 Linux 内核救援,共 11 篇 69302a9
 new file mode 100644
 @@ -0,0 +1,77 @@
+---
+tags: [Docker, 排障, 网络]
+order: 30
+---
+
+# 容器排障:网络、磁盘、日志
+
+## 场景
+
+容器起不来、连不上、把磁盘写满,或者端口映射了却访问不到。
+
+## 前置条件
+
+- 能 `docker ps -a` 看到容器状态
+- 知道容器名或 ID
+- 宿主机有 root
+
+## 配置
+
+### 容器起不来
+
+```bash
+docker ps -a                 # 看 STATUS 和退出码
+docker logs --tail 200 容器名
+docker inspect 容器名 | grep -A5 '"State"'
+```
+
+退出码:`137` 是被 kill(内存超限),`127` 是命令不存在,`1` 看应用日志。
+
+### 网络
+
+```bash
+docker network ls
+docker inspect 容器名 | grep IPAddress
+docker exec -it 容器名 ping db
+docker port 容器名
+ss -lntp | grep 8080
+```
+
+### 磁盘
+
+```bash
+docker system df -v
+du -sh /var/lib/docker/* | sort -h
+docker system prune -a --volumes    # 慎用
+```
+
+### 资源
+
+```bash
+docker stats --no-stream
+docker inspect 容器名 | grep -i memory
+```
+
+## 验证
+
+```bash
+curl -I http://127.0.0.1:8080
+docker exec -it 容器名 curl -I http://db:3306
+```
+
+## 回滚
+
+起不来先回滚镜像版本:
+
+```bash
+docker compose up -d --force-recreate
+```
+
+## 坑
+
+- **`137` 一般是内存超限**,加 `--memory` 或者看宿主机 OOM。
+- 端口映射了但访问不到,先看宿主机防火墙,再看云安全组。
+- 容器内 DNS 解析失败,检查 `/etc/resolv.conf` 和 daemon 的 `dns` 配置。
+- 日志把盘写满,`json-file` 没配 `max-size`。
+- `prune --volumes` 会删数据卷,别在生产随手敲。
+- MTU 不一致导致跨主机通信时断时续,尤其是 VXLAN 环境。