Docker Desktop 故障排除
本页包含关于如何诊断和排除 Docker Desktop 故障,以及如何检查日志的信息。
警告
如果您在 Mac 上遇到恶意软件检测问题,请按照 docker/for-mac#7527 中记录的步骤操作。
故障排除菜单
要导航到故障排除,请执行以下任一操作:
- 选择 Docker 菜单 Docker menu
,然后选择故障排除。
- 选择 Docker Dashboard 右上角的故障排除图标。
故障排除菜单包含以下选项:
重新启动 Docker Desktop.
重置 Kubernetes 集群。选择此选项将删除所有堆栈和 Kubernetes 资源。有关更多信息,请参阅Kubernetes。
清理 / 清除数据。此选项将重置所有 Docker 数据,但不会恢复到出厂默认设置。选择此选项将导致丢失现有设置。
恢复到出厂默认设置:选择此选项可将 Docker Desktop 上的所有选项重置为初始状态,就像 Docker Desktop 首次安装时一样。
如果您是 Mac 或 Linux 用户,您还可以选择从系统中卸载 Docker Desktop。
诊断
提示
如果在故障排除中找不到解决方案,请浏览 GitHub 仓库或创建新问题:
从应用进行诊断
- 在故障排除中,选择获取支持。这将打开应用内支持页面并开始收集诊断信息。
- 诊断信息收集完成后,选择上传以获取诊断 ID。
- 诊断信息上传后,Docker Desktop 会打印一个诊断 ID。复制此 ID。
- 使用您的诊断 ID 获取帮助
- 如果您拥有付费 Docker 订阅,请选择联系支持。这将打开 Docker Desktop 支持表单。填写所需信息,并将您在步骤三中复制的 ID 添加到诊断 ID 字段。然后,选择提交工单以申请 Docker Desktop 支持。
注意
您必须登录 Docker Desktop 才能访问支持表单。有关 Docker Desktop 支持涵盖内容的详细信息,请参阅支持。
- 如果您没有付费 Docker 订阅,请选择报告 Bug 以在 GitHub 上创建新的 Docker Desktop 问题。填写所需信息,并确保添加您在步骤三中复制的诊断 ID。
- 如果您拥有付费 Docker 订阅,请选择联系支持。这将打开 Docker Desktop 支持表单。填写所需信息,并将您在步骤三中复制的 ID 添加到诊断 ID 字段。然后,选择提交工单以申请 Docker Desktop 支持。
从错误消息进行诊断
- 当出现错误消息时,选择收集诊断信息。
- 诊断信息上传后,Docker Desktop 会打印一个诊断 ID。复制此 ID。
- 使用您的诊断 ID 获取帮助
从终端进行诊断
在某些情况下,自己运行诊断工具会很有用,例如当 Docker Desktop 无法启动时。
找到
com.docker.diagnose
工具$ C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe
创建并上传诊断 ID。在 PowerShell 中,运行
$ & "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" gather -upload
诊断完成后,终端将显示您的诊断 ID 和诊断文件的路径。诊断 ID 由您的用户 ID 和时间戳组成。例如 BE9AFAAF-F68B-41D0-9D12-84760E6B8740/20190905152051
。
找到
com.docker.diagnose
工具$ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose
创建并上传诊断 ID。运行
$ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose gather -upload
诊断完成后,终端将显示您的诊断 ID 和诊断文件的路径。诊断 ID 由您的用户 ID 和时间戳组成。例如 BE9AFAAF-F68B-41D0-9D12-84760E6B8740/20190905152051
。
找到
com.docker.diagnose
工具$ /opt/docker-desktop/bin/com.docker.diagnose
创建并上传诊断 ID。运行
$ /opt/docker-desktop/bin/com.docker.diagnose gather -upload
诊断完成后,终端将显示您的诊断 ID 和诊断文件的路径。诊断 ID 由您的用户 ID 和时间戳组成。例如 BE9AFAAF-F68B-41D0-9D12-84760E6B8740/20190905152051
。
要查看诊断文件的内容
解压文件。在 PowerShell 中,将诊断文件路径复制并粘贴到以下命令中,然后运行。它应类似于以下示例:
$ Expand-Archive -LiteralPath "C:\Users\testUser\AppData\Local\Temp\5DE9978A-3848-429E-8776-950FC869186F\20230607101602.zip" -DestinationPath "C:\Users\testuser\AppData\Local\Temp\5DE9978A-3848-429E-8776-950FC869186F\20230607101602"
在您首选的文本编辑器中打开文件。运行
$ code <path-to-file>
运行
$ open /tmp/<your-diagnostics-ID>.zip
运行
$ unzip –l /tmp/<your-diagnostics-ID>.zip
使用您的诊断 ID 获取帮助
如果您拥有付费 Docker 订阅,请选择联系支持。这将打开 Docker Desktop 支持表单。填写所需信息,并将您在步骤三中复制的 ID 添加到诊断 ID 字段。然后,选择提交工单以申请 Docker Desktop 支持。
如果您没有付费 Docker 订阅,请在 GitHub 上创建问题
自诊断工具
Docker Desktop 包含一个自诊断工具,可帮助您识别一些常见问题。
找到
com.docker.diagnose
工具。$ C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe
在 PowerShell 中,运行自诊断工具
$ & "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" gather
找到
com.docker.diagnose
工具。$ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose
运行自诊断工具
$ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose gather
找到
com.docker.diagnose
工具。运行自诊断工具
$ /opt/docker-desktop/bin/com.docker.diagnose gather
该工具运行一系列检查,并在每次检查旁边显示通过或失败。如果存在任何失败,报告末尾会重点突出最相关的项。
然后您可以在 GitHub 上创建问题
检查日志
除了使用诊断选项提交日志外,您还可以自己浏览日志。
在 PowerShell 中,运行
$ code $Env:LOCALAPPDATA\Docker\log
这将在您首选的文本编辑器中打开所有日志供您查阅。
从终端
要在命令行中查看 Docker Desktop 日志的实时流,请在您首选的 Shell 中运行以下脚本。
$ pred='process matches ".*(ocker|vpnkit).*" || (process in {"taskgated-helper", "launchservicesd", "kernel"} && eventMessage contains[c] "docker")'
$ /usr/bin/log stream --style syslog --level=debug --color=always --predicate "$pred"
或者,要将最后一天的日志 (1d
) 收集到文件中,请运行
$ /usr/bin/log show --debug --info --style syslog --last 1d --predicate "$pred" >/tmp/logs.txt
从 Console 应用
Mac 提供一个内置的日志查看器,名为 Console,您可以使用它来检查 Docker 日志。
Console 位于 /Applications/Utilities
中。您可以使用 Spotlight Search 搜索它。
要阅读 Docker 应用日志消息,请在 Console 窗口搜索栏中输入 docker
并按 Enter 键。然后选择 ANY
以展开 docker
搜索条目旁边的下拉列表,并选择 Process
。


您可以使用 Console 日志查询来搜索日志,以各种方式过滤结果并创建报告。
您可以通过运行以下命令访问 Docker Desktop 日志:
$ journalctl --user --unit=docker-desktop
您还可以在 $HOME/.docker/desktop/log/
找到 Docker Desktop 中包含的内部组件的日志。
查看 Docker 守护进程日志
请参阅阅读守护进程日志部分,了解如何查看 Docker Daemon 日志。