docker-debugging
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDocker Debugging Skill
Docker调试技能
Master container debugging and troubleshooting for development and production issues.
掌握面向开发与生产环境问题的容器调试与故障排查方法。
Purpose
用途
Diagnose and resolve container issues including crashes, performance problems, networking failures, and resource constraints.
诊断并解决各类容器问题,包括崩溃、性能问题、网络故障以及资源受限等。
Parameters
参数
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| container | string | No | - | Container name/ID |
| issue_type | enum | No | - | crash/network/resource/health |
| verbose | boolean | No | false | Detailed output |
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| container | string | 否 | - | 容器名称/ID |
| issue_type | enum | 否 | - | crash/network/resource/health |
| verbose | boolean | 否 | false | 详细输出 |
Debugging Commands
调试命令
Container Logs
容器日志
bash
undefinedbash
undefinedLast 100 lines
最后100行
docker logs --tail 100 <container>
docker logs --tail 100 <container>
Follow logs
实时跟踪日志
docker logs -f <container>
docker logs -f <container>
With timestamps
显示时间戳
docker logs -t <container>
docker logs -t <container>
Specific time range
指定时间范围
docker logs --since 1h --until 30m <container>
undefineddocker logs --since 1h --until 30m <container>
undefinedInteractive Debugging
交互式调试
bash
undefinedbash
undefinedExecute shell in running container
在运行中的容器内执行shell
docker exec -it <container> /bin/sh
docker exec -it <container> /bin/sh
As root (for debugging)
以root身份执行(用于调试)
docker exec -u 0 -it <container> /bin/sh
docker exec -u 0 -it <container> /bin/sh
Run command
执行命令
docker exec <container> ps aux
undefineddocker exec <container> ps aux
undefinedContainer Inspection
容器检查
bash
undefinedbash
undefinedFull inspection
完整检查信息
docker inspect <container>
docker inspect <container>
Specific fields
查看特定字段
docker inspect --format='{{.State.Status}}' <container>
docker inspect --format='{{.State.Health.Status}}' <container>
docker inspect --format='{{json .NetworkSettings}}' <container>
undefineddocker inspect --format='{{.State.Status}}' <container>
docker inspect --format='{{.State.Health.Status}}' <container>
docker inspect --format='{{json .NetworkSettings}}' <container>
undefinedIssue Diagnosis
问题诊断
Container Won't Start
容器无法启动
bash
undefinedbash
undefinedCheck exit code
检查退出码
docker inspect --format='{{.State.ExitCode}}' <container>
docker inspect --format='{{.State.ExitCode}}' <container>
View last logs
查看最新日志
docker logs --tail 50 <container>
docker logs --tail 50 <container>
Check events
查看事件记录
docker events --filter 'container=<name>' --since 1h
undefineddocker events --filter 'container=<name>' --since 1h
undefinedExit Code Reference
退出码参考
| Code | Meaning | Action |
|---|---|---|
| 0 | Success | Normal exit |
| 1 | General error | Check logs |
| 137 | OOMKilled | Increase memory |
| 139 | Segfault | Check app code |
| 143 | SIGTERM | Graceful shutdown |
| 代码 | 含义 | 操作建议 |
|---|---|---|
| 0 | 成功 | 正常退出 |
| 1 | 一般错误 | 查看日志 |
| 137 | 内存不足被终止 | 增加内存配额 |
| 139 | 段错误 | 检查应用代码 |
| 143 | 接收到SIGTERM信号 | 优雅关闭 |
Health Check Failures
健康检查失败
bash
undefinedbash
undefinedCheck health status
检查健康状态
docker inspect --format='{{json .State.Health}}' <container>
docker inspect --format='{{json .State.Health}}' <container>
View health logs
查看健康检查日志
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' <container>
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' <container>
Manually test health
手动测试健康状态
docker exec <container> curl -f http://localhost/health
undefineddocker exec <container> curl -f http://localhost/health
undefinedResource Issues
资源问题
bash
undefinedbash
undefinedLive stats
实时资源统计
docker stats <container>
docker stats <container>
Formatted output
格式化输出
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"
Check limits
查看资源限制
docker inspect --format='{{.HostConfig.Memory}}' <container>
undefineddocker inspect --format='{{.HostConfig.Memory}}' <container>
undefinedNetwork Issues
网络问题
bash
undefinedbash
undefinedCheck network
检查网络配置
docker network inspect <network>
docker network inspect <network>
Test DNS
测试DNS解析
docker exec <container> nslookup <service>
docker exec <container> nslookup <service>
Test connectivity
测试连通性
docker exec <container> ping -c 3 <target>
docker exec <container> curl http://<service>:port
docker exec <container> ping -c 3 <target>
docker exec <container> curl http://<service>:port
View ports
查看端口映射
docker port <container>
undefineddocker port <container>
undefinedTroubleshooting Flowchart
故障排查流程图
Container Issue?
│
├─ Won't Start
│ ├─ Check logs: docker logs <c>
│ ├─ Check exit code: docker inspect
│ └─ Verify image: docker pull
│
├─ Unhealthy
│ ├─ Check health logs
│ ├─ Test health endpoint manually
│ └─ Increase start_period
│
├─ High Resource
│ ├─ Check stats: docker stats
│ ├─ Increase limits
│ └─ Profile application
│
└─ Network Failed
├─ Check DNS: nslookup
├─ Check connectivity: ping/curl
└─ Verify network membership遇到容器问题?
│
├─ 无法启动
│ ├─ 查看日志:docker logs <c>
│ ├─ 检查退出码:docker inspect
│ └─ 验证镜像:docker pull
│
├─ 状态不健康
│ ├─ 查看健康检查日志
│ ├─ 手动测试健康端点
│ └─ 延长启动等待时间(start_period)
│
├─ 资源占用过高
│ ├─ 查看统计数据:docker stats
│ ├─ 调整资源限制
│ └─ 应用性能分析
│
└─ 网络故障
├─ 检查DNS解析:nslookup
├─ 测试连通性:ping/curl
└─ 验证网络成员身份Debug Container
调试容器
bash
undefinedbash
undefinedRun debug container in same network
在同一网络中运行调试容器
docker run --rm -it --network <network>
nicolaka/netshoot
nicolaka/netshoot
docker run --rm -it --network <network>
nicolaka/netshoot
nicolaka/netshoot
Available tools: curl, dig, nmap, tcpdump, etc.
可用工具:curl、dig、nmap、tcpdump等
undefinedundefinedError Handling
错误处理
Common Errors
常见错误
| Error | Cause | Solution |
|---|---|---|
| Wrong name/ID | Use |
| Container stopped | Start container first |
| Missing binary | Use correct image |
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
| 名称/ID错误 | 使用 |
| 容器已停止 | 先启动容器 |
| 缺少二进制文件 | 使用正确的镜像 |
Usage
使用方法
Skill("docker-debugging")Skill("docker-debugging")Assets
资源文件
- - Command reference
assets/debug-commands.yaml - - Health check script
scripts/container-health-check.sh
- - 命令参考文件
assets/debug-commands.yaml - - 健康检查脚本
scripts/container-health-check.sh
Related Skills
相关技能
- docker-production
- docker-networking
- docker-production
- docker-networking