全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-21 6 分钟 ✍️ juanwangdev

故障排查工具箱

容器故障排查需要多种工具,下面介绍常用排查方法和工具。

容器状态检查

Bash
# 查看容器状态
docker inspect my-app

# 查看容器日志
docker logs my-app
docker logs --tail 100 my-app

# 查看容器进程
docker top my-app

# 查看容器资源使用
docker stats my-app

网络排查

tcpdump 抓包

Bash
# 容器内抓包
docker exec my-app tcpdump -i eth0 -w /tmp/capture.pcap

# 宿主抓包(需要 nsenter)
nsenter -t $(docker inspect --format='{{.State.Pid}}' my-app) -n \
  tcpdump -i eth0 -w /tmp/capture.pcap

网络连通性

Bash
# 测试 DNS
docker exec my-app nslookup db

# 测试端口
docker exec my-app nc -zv db 5432

# 测试路由
docker exec my-app traceroute db

网络命名空间

Bash
# 进入容器网络命名空间
PID=$(docker inspect --format='{{.State.Pid}}' my-app)
nsenter -t $PID -n /bin/bash

# 查看网络配置
ip addr
ip route
netstat -tlnp

性能排查

strace 系统调用

Bash
# 跟踪进程系统调用
PID=$(docker inspect --format='{{.State.Pid}}' my-app)
strace -p $PID -f -o /tmp/strace.log

# 仅跟踪特定调用
strace -p $PID -e trace=read,write

perf 性能分析

Bash
# 安装 perf
sudo apt-get install linux-tools-common

# 分析进程性能
PID=$(docker inspect --format='{{.State.Pid}}' my-app)
perf top -p $PID

# 生成性能报告
perf record -p $PID -g -- sleep 10
perf report

IO 排查

Bash
# 查看容器 IO 统计
docker stats my-app

# 查看底层 IO
cat /sys/fs/cgroup/blkio/docker/<id>/blkio.throttle.io_service_bytes

# iostat 查看宿主 IO
iostat -x 1

内存排查

Bash
# 查看内存使用
docker stats my-app

# 查看容器内存限制
docker inspect my-app | grep -A 5 "Memory"

# 进入容器查看内存
docker exec my-app free -m
docker exec my-app cat /proc/meminfo

文件系统排查

Bash
# 查看容器文件系统变更
docker diff my-app

# 进入容器查看文件
docker exec my-app ls -la /app
docker exec my-app df -h

# 查看容器层
docker inspect my-app | grep -A 10 "GraphDriver"

日志排查

Bash
# 查看 Docker Daemon 日志
journalctl -u docker

# 查看容器日志
docker logs my-app
docker logs --since 1h my-app

# 查看系统日志
docker exec my-app cat /var/log/syslog

常用工具

工具用途示例
nsenter进入容器命名空间nsenter -t PID -n
tcpdump网络抓包tcpdump -i eth0
strace系统调用跟踪strace -p PID
perf性能分析perf top -p PID
netstat网络连接查看netstat -tlnp
iostat磁盘 IO 查看iostat -x 1

要点总结

  • docker inspect/logs/stats/top 是基础排查工具
  • nsenter 进入容器网络/进程命名空间
  • tcpdump 抓包分析网络问题
  • strace 跟踪系统调用定位性能瓶颈
  • perf 分析 CPU 性能,iostat 分析磁盘 IO

📝 发现内容有误?点击此处直接编辑

← 上一篇 备份与灾难恢复
下一篇 → 日志聚合与监控栈
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库