排查 Docker Desktop 問題

此頁面包含有關如何診斷和排查 Docker Desktop 問題以及如何檢查日誌的資訊。

故障排除選單

要導航到 **故障排除**,請執行以下操作:

  • 選擇 Docker 選單 whale menu,然後選擇 **故障排除**
  • 選擇 Docker 儀表板右上角附近的 **故障排除** 圖示
Troubleshoot menu in Docker Desktop

**故障排除** 頁面包含以下選項

  • 重新啟動 Docker Desktop.

  • **獲取支援**。擁有付費 Docker 訂閱的使用者可以使用此選項傳送支援請求。其他使用者可以使用此選項診斷 Docker Desktop 中的任何問題。有關更多資訊,請參見 診斷和反饋 以及 支援

  • **重置 Kubernetes 叢集**。選擇此選項以刪除所有堆疊和 Kubernetes 資源。有關更多資訊,請參見 Kubernetes

  • **清除/清理資料**。此選項會重置所有 Docker 資料,但不會重置為出廠預設設定。選擇此選項會導致丟失現有設定。

  • **重置為出廠預設設定**:選擇此選項將 Docker Desktop 上的所有選項重置為其初始狀態,與首次安裝 Docker Desktop 時相同。

如果您是 Mac 或 Linux 使用者,您還可以選擇從系統中 **解除安裝** Docker Desktop。

診斷

提示

如果您在故障排除中沒有找到解決方案,請瀏覽 GitHub 程式碼庫或建立新問題

從應用程式中診斷

  1. 從 **故障排除** 中,選擇 **獲取支援**。這將開啟應用內 **支援** 頁面並開始收集診斷資訊。
    Diagnose & Feedback
  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 上開啟一個新的 Docker Desktop 問題 MacWindowsLinux。填寫所需資訊,並確保您添加了您在步驟二中複製的診斷 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 提供了一個內建的日誌檢視器,名為 **控制檯**,可用於檢視 Docker 日誌。

控制檯位於 /Applications/Utilities 中。您可以使用 Spotlight 搜尋來查詢它。

要讀取 Docker 應用程式日誌訊息,請在控制檯視窗搜尋欄中輸入 docker 並按 Enter 鍵。然後選擇 ANY 以展開 docker 搜尋條目旁邊的下拉列表,然後選擇 Process

Mac Console search for Docker app

您可以使用控制檯日誌查詢來搜尋日誌,以各種方式篩選結果以及建立報告。

您可以透過執行以下命令來訪問 Docker Desktop 日誌

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

您也可以在 $HOME/.docker/desktop/log/ 中找到 Docker Desktop 中包含的內部元件的日誌。


檢視 Docker 守護程序日誌

請參閱 讀取守護程序日誌 部分,瞭解如何檢視 Docker 守護程序日誌。

其他資源