Docker Desktop 故障排除
本页包含有关如何诊断和排查 Docker Desktop 以及如何检查日志的信息。
疑难解答菜单
要导航到 Troubleshoot (故障排除),请执行以下作:
- 选择 Docker 菜单、Docker 菜单
,然后选择 Troubleshoot。
- 选择 Docker Dashboard 右上角附近的 Troubleshoot 图标。
Troubleshooting (故障排除) 菜单包含以下选项:
重新启动 Docker Desktop。
重置 Kubernetes 集群。选择删除所有堆栈和 Kubernetes 资源。有关更多信息,请参阅 Kubernetes。
清理/清除数据。此选项会重置所有 Docker 数据,而不会 重置为出厂默认值。选择此选项会导致现有设置丢失。
重置为出厂默认设置:选择此选项可重置所有选项 将 Docker Desktop 设置为初始状态,与首次安装 Docker Desktop 时相同。
如果您是 Mac 或 Linux 用户,您还可以选择从您的系统中卸载 Docker Desktop。
提示
如果需要联系支持人员,请选择 Docker 仪表板右上角附近的问号图标,然后选择 Contact support (联系支持人员)。具有付费 Docker 订阅的用户可以使用此选项发送支持请求。
诊断
提示
如果您在故障排除中找不到解决方案,请浏览 GitHub 存储库或创建新问题:
从应用程序进行诊断
- 从 Troubleshoot (疑难解答) 中,选择 Get support (获取支持)。这将打开应用程序内 Support 页面并开始收集诊断信息。
- 诊断收集过程完成后,选择 Upload (上传) 以获取诊断 ID。
- 上传诊断信息后,Docker Desktop 会打印诊断 ID。复制此 ID。
- 使用您的诊断 ID 获取帮助:
- 如果您有付费的 Docker 订阅,请选择 Contact support (联系支持人员)。这将打开 Docker Desktop 支持表单。填写所需信息,并将您在步骤 3 中复制的 ID 添加到 Diagnostics ID 字段。然后,选择 Submit ticket 以请求 Docker Desktop 支持。
注意
您必须登录到 Docker Desktop 才能访问支持表单。有关 Docker Desktop 支持所涵盖内容的信息,请参阅支持。
- 如果您没有付费的 Docker 订阅,请选择 Report a Bug 以在 GitHub 上打开新的 Docker Desktop 问题。填写所需信息,并确保添加您在第 3 步中复制的诊断 ID。
- 如果您有付费的 Docker 订阅,请选择 Contact support (联系支持人员)。这将打开 Docker Desktop 支持表单。填写所需信息,并将您在步骤 3 中复制的 ID 添加到 Diagnostics ID 字段。然后,选择 Submit ticket 以请求 Docker Desktop 支持。
根据错误消息进行诊断
- 出现错误消息时,选择 Gather diagnostics (收集诊断信息)。
- 上传诊断信息后,Docker Desktop 会打印诊断 ID。复制此 ID。
- 使用您的诊断 ID 获取帮助:
- 如果您有付费的 Docker 订阅,请选择 Contact support (联系支持人员)。这将打开 Docker Desktop 支持表单。填写所需信息,并将您在步骤 3 中复制的 ID 添加到 Diagnostics ID 字段。然后,选择 Submit ticket 以请求 Docker Desktop 支持。
注意
您必须登录到 Docker Desktop 才能访问支持表单。有关 Docker Desktop 支持所涵盖内容的信息,请参阅支持。
- 如果您没有付费的 Docker 订阅,可以在适用于 Mac、Windows 或 Linux 的 GitHub 上打开新的 Docker Desktop 问题。填写所需信息,并确保添加步骤 2 中打印的诊断 ID。
- 如果您有付费的 Docker 订阅,请选择 Contact support (联系支持人员)。这将打开 Docker Desktop 支持表单。填写所需信息,并将您在步骤 3 中复制的 ID 添加到 Diagnostics ID 字段。然后,选择 Submit ticket 以请求 Docker Desktop 支持。
从终端诊断
在某些情况下,自己运行诊断非常有用,例如,如果 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 订阅,请选择 Contact support (联系支持人员)。这将打开 Docker Desktop 支持表单。填写所需信息,并将您在步骤 3 中复制的 ID 添加到 Diagnostics ID 字段。然后,选择 Submit ticket 以请求 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" check
找到
com.docker.diagnose
工具。$ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose
运行自我诊断工具:
$ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose check
找到
com.docker.diagnose
工具。运行自我诊断工具:
$ /opt/docker-desktop/bin/com.docker.diagnose check
该工具将运行一套检查,并在每个检查旁边显示 PASS 或 FAIL。如果有任何失败,它会在报告末尾突出显示最相关的。
然后,您可以在 GitHub 上创建一个问题:
检查日志
除了使用 diagnose 选项提交日志外,您还可以自行浏览日志。
在 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 日志。
控制台位于/Applications/Utilities
.您可以使用
Spotlight 搜索。
要读取 Docker 应用程序日志消息,请键入docker
,然后按 Enter。然后选择ANY
展开docker
搜索条目,然后选择Process
.

您可以使用 Console Log Query 来搜索日志,在各种 方式创建报告。
您可以通过运行以下命令来访问 Docker Desktop 日志:
$ journalctl --user --unit=docker-desktop
您还可以找到 Docker 中包含的内部组件的日志
桌面$HOME/.docker/desktop/log/
.
查看 Docker 守护程序日志
请参阅 读取守护程序日志 部分 了解如何查看 Docker 守护程序日志。
更多资源
- 查看特定的故障排除主题。
- 为常见问题实施解决方法
- 查看已知问题信息