Docker 桌面故障排除

本页面包含有关如何诊断 Docker Desktop 和排除故障以及如何检查日志的信息。

故障排除菜单

要导航至故障排除

  • 选择 Docker 菜单 鲸鱼菜单 ,然后进行故障排除
  • 选择Docker 仪表板右上角附近的“故障排除”图标
Docker Desktop 中的菜单故障排除

故障排除页面包含以下选项:

  • 重新启动 Docker 桌面

  • 得到支持。拥有付费 Docker 订阅的用户可以使用此选项发送支持请求。其他用户可以使用此选项来诊断 Docker Desktop 中的任何问题。有关详细信息,请参阅 诊断和反馈以及支持

  • 重置 Kubernetes 集群。选择删除所有堆栈和 Kubernetes 资源。有关更多信息,请参阅 Kubernetes

  • 清理/清除数据。此选项会重置所有 Docker 数据,而不重置为出厂默认值。选择此选项将导致现有设置丢失。

  • 重置为出厂默认设置:选择此选项可将 Docker Desktop 上的所有选项重置为初始状态,与首次安装 Docker Desktop 时相同。

如果您是 Mac 或 Linux 用户,您还可以选择从系统中卸载Docker Desktop。

诊断

提示

如果您在故障排除中找不到解决方案,请浏览 GitHub 存储库或创建新问题:

从应用程序诊断

  1. “疑难解答”中,选择“获取支持”。这将打开应用程序内支持页面并开始收集诊断信息。
    诊断与反馈
  2. 诊断收集过程完成后,选择上传以获取诊断 ID
  3. 上传诊断信息后,Docker Desktop 会打印诊断 ID。复制此 ID。
  4. 使用您的诊断 ID 获取帮助:
    • 如果您有付费 Docker 订阅,请选择联系支持。这将打开 Docker Desktop 支持表单。填写所需信息并将您在第三步中复制的 ID 添加到诊断 ID字段。然后,选择“提交”以请求 Docker Desktop 支持。

      笔记

      您必须登录 Docker Desktop 才能访问支持表单。有关 Docker Desktop 支持所涵盖内容的信息,请参阅支持

    • 如果您没有付费 Docker 订阅,请选择报告错误以在 GitHub 上打开新的 Docker Desktop 问题。填写所需信息并确保添加在第三步中复制的诊断 ID。

根据错误信息进行诊断

  1. 当出现错误消息时,选择收集诊断信息
  2. 上传诊断信息后,Docker Desktop 会打印诊断 ID。复制此 ID。
  3. 使用您的诊断 ID 获取帮助:
    • 如果您有付费 Docker 订阅,可以 联系支持人员。填写所需信息并将您在第二步中复制的 ID 添加到诊断 ID字段。然后,选择“提交”以请求 Docker Desktop 支持。

      笔记

      您必须登录 Docker Desktop 才能访问支持表单。有关 Docker Desktop 支持所涵盖内容的信息,请参阅支持

    • 如果您没有付费 Docker 订阅,您可以在 GitHub 上针对 MacWindowsLinux创建新的 Docker Desktop 问题。填写所需信息并确保添加在第二步中复制的诊断 ID。

从终端诊断

在某些情况下,自行运行诊断会很有用,例如,如果 Docker Desktop 无法启动。


  1. 找到该com.docker.diagnose工具:

    $ C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe
    
  2. 创建并上传诊断 ID。在 PowerShell 中,运行:

    $ & "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" gather -upload
    

诊断完成后,终端将显示您的诊断 ID 和诊断文件的路径。诊断 ID 由您的用户 ID 和时间戳组成。例如BE9AFAAF-F68B-41D0-9D12-84760E6B8740/20190905152051

  1. 找到该com.docker.diagnose工具:

    $ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose
    
  2. 创建并上传诊断 ID。运行:

    $ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose gather -upload
    

诊断完成后,终端将显示您的诊断 ID 和诊断文件的路径。诊断 ID 由您的用户 ID 和时间戳组成。例如BE9AFAAF-F68B-41D0-9D12-84760E6B8740/20190905152051

  1. 找到该com.docker.diagnose工具:

    $ /opt/docker-desktop/bin/com.docker.diagnose
    
  2. 创建并上传诊断 ID。运行:

    $ /opt/docker-desktop/bin/com.docker.diagnose gather -upload
    

诊断完成后,终端将显示您的诊断 ID 和诊断文件的路径。诊断 ID 由您的用户 ID 和时间戳组成。例如BE9AFAAF-F68B-41D0-9D12-84760E6B8740/20190905152051


查看诊断文件的内容:


  1. 解压缩文件。在 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"
  2. 在您喜欢的文本编辑器中打开文件。运行:

    $ code <path-to-file>

运行:

$ open /tmp/<your-diagnostics-ID>.zip

运行:

$ unzip –l /tmp/<your-diagnostics-ID>.zip

使用您的诊断 ID 获取帮助

如果您有付费 Docker 订阅,请打开 Docker Desktop 支持表单。填写所需信息并将 ID 添加到诊断 ID 字段。确保提供完整的诊断 ID,而不仅仅是用户 ID。选择提交以请求 Docker Desktop 支持。

如果您没有付费 Docker 订阅,请在 GitHub 上创建问题:

自诊断工具

Docker Desktop 包含一个自我诊断工具,可以帮助您识别一些常见问题。


  1. 找到该com.docker.diagnose工具。

    $ C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe
    
  2. 在PowerShell中,运行自诊断工具:

    $ & "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" check
    
  1. 找到该com.docker.diagnose工具。

    $ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose
    
  2. 运行自诊断工具:

    $ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose check
    
  1. 找到该com.docker.diagnose工具。

  2. 运行自诊断工具:

    $ /opt/docker-desktop/bin/com.docker.diagnose check
    

该工具运行一系列检查,并在每项检查旁边显示“通过”“失败” 。如果存在任何失败,它会在报告末尾突出显示最相关的内容。

然后您可以在 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

从控制台应用程序

Mac 提供了一个内置的日志查看器,名为Console,您可以使用它来检查 Docker 日志。

控制台位于/Applications/Utilities.您可以使用 Spotlight 搜索来搜索它。

要读取 Docker 应用程序日志消息,请docker在控制台窗口搜索栏中键入并按 Enter。然后选择ANY展开搜索条目旁边的下拉列表docker,然后选择Process

Mac 控制台搜索 Docker 应用程序

您可以使用控制台日志查询来搜索日志、以各种方式过滤结果以及创建报告。

您可以通过运行以下命令来访问 Docker Desktop 日志:

$ journalctl --user --unit=docker-desktop

您还可以在以下位置找到 Docker Desktop 中包含的内部组件的日志$HOME/.docker/desktop/log/


查看 Docker 守护进程日志

请参阅 阅读守护进程日志部分,了解如何查看 Docker 守护进程日志。

更多资源