SuperAPI AI 工具集

docker-debugger

部署与运维

查看项目

更新于 10-15 12:47

技能介绍

Docker Debugger 是一个面向 Docker 使用者的调试技能,旨在帮助排查容器问题、修复 Dockerfile 错误、优化镜像以及诊断 docker-compose 配置。

用途

当遇到 Docker 相关问题时使用,例如容器无法启动、构建失败、网络不通、性能异常等。技能提供了一套结构化的调试思路:先识别问题类型(构建、运行时、网络或性能),再通过诊断命令收集信息,分析日志与错误,最后应用修复。

主要能力

诊断命令

技能列出了常用的诊断命令,包括:

  • 查看所有容器:docker ps -a
  • 查看容器日志:docker logs <container_id> --tail 100 -f
  • 检查容器详情:docker inspect <container_id>
  • 查看资源使用:docker stats
  • 查看容器进程:docker top <container_id>
  • 进入运行中的容器:docker exec -it <container_id> /bin/sh
  • 查看 Docker 磁盘占用:docker system df
  • 查看镜像构建历史:docker history <image_name>

常见问题与解决方案

技能覆盖了四类常见问题:

  1. 容器立即退出:通过 docker inspect <container_id> --format='{{.State.ExitCode}}' 检查退出码,查看最后日志。修复方法包括确保 CMD/ENTRYPOINT 运行前台进程、检查缺失依赖、验证环境变量。

  2. 构建失败:建议使用多阶段构建以减小镜像体积,示例中展示了 Node.js 应用的多阶段构建写法。

  3. 网络问题:列出网络、检查网络详情、查看容器 IP 的命令。

  4. 卷权限问题:通过创建非 root 用户并设置文件所有权来解决。

Dockerfile 最佳实践

技能整理了九条最佳实践:使用具体标签而非 :latest、设置工作目录、先复制依赖文件以利用缓存、依赖之后复制源码、使用非 root 用户、设置标签、使用 HEALTHCHECK、暴露端口、CMD 使用 exec 形式。

docker-compose 调试

提供了 docker-compose.yml 中用于调试的配置示例(stdin_open、tty、覆盖 command、挂载卷、环境变量),以及无缓存重建、查看日志、重启单个服务的命令。

使用方式

该技能以指令和命令示例的形式提供,用户可在遇到 Docker 问题时参考对应章节,按步骤执行诊断命令并应用修复方案。

适用场景

适用于开发者在本地或 CI 环境中调试 Docker 容器、优化镜像构建、排查 docker-compose 服务间通信问题等场景。

限制

技能内容为通用调试指南,未针对特定操作系统或 Docker 版本做适配说明。部分命令示例(如 Node.js 多阶段构建)仅为示例,实际使用时需根据项目调整。技能未提供自动化脚本或集成工具,需手动执行命令。