最直接的系统级诊断方式是使用docker info和docker system df -v,配合守护进程日志与基础健康检查;docker info显示引擎全局状态,docker system df -v详列磁盘占用,journalctl -u docker.service查daemon日志,再辅以docker run --rm hello-world验证调度能力。

查系统级诊断(bug report)相关指令,最直接的方式是使用 docker info 和 docker system df,再配合守护进程日志与内置诊断命令。Docker 官方没有叫 “bug report” 的独立子命令,但提供了一套用于收集系统状态、资源占用和运行环境信息的组合方式,供提交 issue 或内部排查使用。
核心诊断信息获取命令
这些命令能快速输出 Docker 主机的底层状态,相当于“一键体检”:
- docker info:显示 Docker 引擎版本、存储驱动、cgroup 配置、容器/镜像/卷数量、插件列表、安全选项等全局信息。这是诊断环境兼容性、配置异常的首要命令。
-
docker system df -v:详细列出镜像、容器、本地卷、构建缓存的磁盘占用,含各层大小和挂载点路径。适合排查
/var/lib/docker空间耗尽导致 daemon 崩溃的问题。 - docker version:分别显示客户端和服务端(daemon)版本及 API 版本,可快速识别版本不匹配或旧版已知缺陷。
查看守护进程自身日志(关键线索来源)
当 Docker 命令卡死、服务无法启动或报 “Error response from daemon”,问题往往出在 daemon 层。此时需查其运行日志:
- Linux(systemd):
sudo journalctl -u docker.service -n 100 --no-pager - Linux(非 systemd):
sudo cat /var/log/docker.log(若启用 syslog 或 file 日志驱动) - macOS(Docker Desktop):通过菜单 Troubleshoot → Export Logs 获取完整诊断包
触发内置健康检查与诊断工具
Docker 本身不带交互式 debug 工具,但可通过以下方式辅助判断系统级异常:
- 运行
docker run --rm hello-world:验证 daemon 是否能正常调度容器(排除权限、存储驱动、内核模块问题) - 检查内核要求:
uname -r确认 ≥ 3.10;lsmod | grep overlay(或btrfs/zfs)确认存储驱动模块已加载 - 测试基础网络:
curl -v http://registry-1.docker.io/v2/排除代理或 DNS 导致的拉取失败
生成可用于提交 issue 的诊断数据
向 Docker 官方 GitHub 提交 bug 时,推荐手动打包以下内容:
-
docker info输出(脱敏后) docker versionjournalctl -u docker.service --since "1 hour ago"-
df -h和free -h结果 - 复现步骤 + 完整错误命令与输出
不复杂但容易忽略:多数“系统级故障”其实源于磁盘满、权限错、内核不兼容或代理配置冲突,先跑完上面几个命令,80% 的问题当场定位。











