Windows 上的 Docker Desktop WSL 2 後端

Windows Subsystem for Linux (WSL) 2 是由微軟構建的完整 Linux 核心,它允許 Linux 發行版執行而無需管理虛擬機器。透過在 WSL 2 上執行 Docker Desktop,使用者可以利用 Linux 工作區並避免維護 Linux 和 Windows 構建指令碼。此外,WSL 2 為檔案系統共享和啟動時間提供了改進。

Docker Desktop 使用 WSL 2 中的動態記憶體分配功能來改善資源消耗。這意味著 Docker Desktop 只使用所需的 CPU 和記憶體資源,同時允許 CPU 和記憶體密集型任務(例如構建容器)更快地執行。

此外,使用 WSL 2,在冷啟動後啟動 Docker 守護程序所需的時間明顯更快。

先決條件

在啟用 Docker Desktop WSL 2 功能之前,請確保您已

提示

為了在 WSL 上獲得更好的體驗,請考慮啟用 WSL autoMemoryReclaim 設定,該設定自 WSL 1.3.10(實驗性)起可用。

此功能增強了 Windows 主機在 WSL 虛擬機器中回收未用記憶體的能力,確保為其他主機應用程式提供更好的記憶體可用性。此功能對於 Docker Desktop 尤其有用,因為它可以防止 WSL 虛擬機器在 Docker 容器映象構建期間在 Linux 核心的頁面快取中保留大量記憶體(以 GB 為單位),而無需在虛擬機器中不再需要時將其釋放回主機。

啟用 Docker Desktop WSL 2

重要

為了避免使用 WSL 2 on Docker Desktop 時的任何潛在衝突,您必須解除安裝任何之前直接透過 Linux 發行版安裝的 Docker Engine 和 CLI 版本,然後再安裝 Docker Desktop。

  1. 下載並安裝最新版本的 Docker Desktop for Windows.

  2. 按照通常的安裝說明安裝 Docker Desktop。根據您使用的 Windows 版本,Docker Desktop 可能會在安裝過程中提示您啟用 WSL 2。閱讀螢幕上顯示的資訊,並啟用 WSL 2 功能以繼續。

  3. 從**Windows 開始**選單啟動 Docker Desktop。

  4. 導航到**設定**。

  5. 從**常規**選項卡中,選擇**使用基於 WSL 2 的引擎**。

    如果您已在支援 WSL 2 的系統上安裝 Docker Desktop,則此選項預設處於啟用狀態。

  6. 選擇**應用並重啟**。

現在,docker 命令使用新的 WSL 2 引擎從 Windows 工作。

提示

預設情況下,Docker Desktop 將 WSL 2 引擎的資料儲存在 C:\Users\[USERNAME]\AppData\Local\Docker\wsl 中。如果您想更改位置,例如更改為另一個驅動器,您可以透過 Docker 儀表板中的 設定 -> 資源 -> 高階 頁面進行操作。有關此設定以及其他 Windows 設定的更多資訊,請參閱 在 Windows 上更改 Docker Desktop 設定

在 WSL 2 發行版中啟用 Docker 支援

WSL 2 為 Windows 添加了對“Linux 發行版”的支援,其中每個發行版都像虛擬機器一樣執行,但它們都執行在單個共享 Linux 核心之上。

Docker Desktop 不需要安裝任何特定的 Linux 發行版。docker CLI 和 UI 都可以在沒有額外 Linux 發行版的情況下從 Windows 正常工作。但是,為了獲得最佳的開發人員體驗,我們建議您至少安裝一個額外的發行版並啟用 Docker 支援

  1. 確保發行版在 WSL 2 模式下執行。WSL 可以以 v1 或 v2 模式執行發行版。

    要檢查 WSL 模式,請執行

    $ wsl.exe -l -v
    

    要將 Linux 發行版升級到 v2,請執行

    $ wsl.exe --set-version (distro name) 2
    

    要將 v2 設定為未來安裝的預設版本,請執行

    $ wsl.exe --set-default-version 2
    
  2. 當 Docker Desktop 啟動時,請轉到**設定** > **資源** > **WSL 整合**。

    Docker-WSL 整合已在預設的 WSL 發行版上啟用,該發行版是 Ubuntu。要更改您的預設 WSL 發行版,請執行

    $ wsl --set-default <distro name>
    
  3. 選擇**應用並重啟**。

注意

Docker Desktop 安裝了兩個特殊用途的內部 Linux 發行版 docker-desktopdocker-desktop-data。第一個 (docker-desktop) 用於執行 Docker 引擎 (dockerd),而第二個 (docker-desktop-data) 儲存容器和映象。這兩個發行版都不能用於一般開發。

其他資源