容器故障排查

4小时前更新 7 00
容器故障排查容器故障排查
容器故障排查

技能简介

container-debug 是一套针对运行中 Docker 容器及 Compose 服务的调试方案,覆盖日志查看、容器内执行命令、网络连通性测试、资源占用分析、多阶段构建问题定位、健康检查失败排查等常见场景。

能做什么

  • 实时追踪或过滤容器日志,支持时间范围筛选与导出
  • 进入运行中容器执行交互式命令,处理无 shell 的精简镜像
  • 诊断容器间网络连通性与 DNS 解析问题
  • 检查容器退出码,定位崩溃原因(OOM、段错误等)
  • 分析多阶段构建异常与健康检查失败
  • 解决 Compose 服务启动顺序与依赖连接问题

使用说明

前置要求:已安装 Docker CLI,支持 Linux/macOS/Windows 系统。

安装指令:无需额外安装,直接使用本地 Docker 环境。

  1. 查看日志:docker logs --tail 100 my-container 查看最新行;docker logs -f my-container 实时追踪;docker compose logs -f api db 查看指定服务日志。
  2. 进入容器:docker exec -it my-container bash 开启交互 shell;Alpine 或无 bash 环境改用 sh;以 root 身份执行加 -u root
  3. 调试已退出容器:docker inspect --format='{{.State.ExitCode}}' my-container 获取退出码;137 表示 OOM 或被强制终止,139 表示段错误;docker start -ai my-container 重新启动并附加调试。
  4. 网络诊断docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my-container 获取 IP;docker exec container-a ping container-b 测试连通性;docker network inspect my-compose-network 查看网络详情。
  5. 无 shell 镜像处理:docker cp my-container:/app/config.json ./ 复制文件出来;或使用 docker run --rm --network container:my-container busybox sh 附加调试容器共享命名空间。

输入与输出

见下方输入与输出表格。

项目内容
输入容器标识(名称/ID)、Compose 服务名、日志过滤条件(行数/时间戳)、目标网络地址(IP/域名/端口)、待执行命令或环境变量
输出标准输出/错误日志、容器元数据(IP/退出码/状态)、网络测试结果(ping/curl/nslookup)、资源占用统计、文件副本
适用人群负责容器化应用运维的技术人员,需要快速定位容器启动失败、网络不通、资源异常等问题的开发者
不包含K8s 集群调度问题排查、跨主机 Swarm 模式调试、镜像安全审计、自动化修复脚本生成

 

风险提示

  • 以 root 身份进入容器可能绕过原安全策略,生产环境谨慎操作
  • nsenter 与命名空间共享需主机 root 权限,存在特权提升风险
  • 日志文件可能包含敏感信息,导出时注意访问控制
  • 调试 crashed 容器时重启操作可能影响现场状态,建议先复制关键数据

来源信息

原始链接:https://github.com/openclaw/skills/tree/main/skills/gitgoodordietrying/container-debug/SKILL.md
来源类型:GitHub 仓库

数据统计

相关导航

暂无评论

none
暂无评论...