Docker Desktop 故障排除

本頁面包含有關如何診斷和排除 Docker Desktop 故障以及如何檢視日誌的資訊。

警告

如果您在 Mac 上遇到惡意軟體檢測問題,請按照 docker/for-mac#7527 中記載的步驟操作。

故障排除選單

要導航到故障排除,您可以

  • 選擇 Docker 選單 Docker 選單 鯨魚選單,然後選擇故障排除
  • 選擇 Docker Dashboard 右上角附近的故障排除圖示。

故障排除選單包含以下選項

  • 重啟 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 訂閱,請選擇報告 Bug以在 GitHub 上開啟一個新的 Docker Desktop 問題。填寫所需資訊,並確保新增您在第三步中複製的診斷 ID。

從錯誤訊息診斷

  1. 當出現錯誤訊息時,選擇收集診斷資訊
  2. 診斷資訊上傳後,Docker Desktop 會列印一個診斷 ID。複製此 ID。
  3. 使用您的診斷 ID 獲取幫助
    • 如果您有付費的 Docker 訂閱,請選擇聯絡支援。這將開啟 Docker Desktop 支援表單。填寫所需資訊,並將您在第三步中複製的 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 欄位中。然後,選擇提交工單以請求 Docker Desktop 支援。

如果您沒有付費的 Docker 訂閱,請在 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 日誌。

Console 位於 /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 守護程序日誌。

更多資源