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 版本 1.1.3.0,但理想情況下是最新版本的 WSL,以 避免 Docker Desktop 無法按預期工作.
- 滿足 Docker Desktop for Windows 的 系統要求.
- 已在 Windows 上安裝 WSL 2 功能。有關詳細說明,請參閱 Microsoft 文件.
提示
為了在 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。
下載並安裝最新版本的 Docker Desktop for Windows.
按照通常的安裝說明安裝 Docker Desktop。根據您使用的 Windows 版本,Docker Desktop 可能會在安裝過程中提示您啟用 WSL 2。閱讀螢幕上顯示的資訊,並啟用 WSL 2 功能以繼續。
從**Windows 開始**選單啟動 Docker Desktop。
導航到**設定**。
從**常規**選項卡中,選擇**使用基於 WSL 2 的引擎**。
如果您已在支援 WSL 2 的系統上安裝 Docker Desktop,則此選項預設處於啟用狀態。
選擇**應用並重啟**。
現在,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 支援
確保發行版在 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
當 Docker Desktop 啟動時,請轉到**設定** > **資源** > **WSL 整合**。
Docker-WSL 整合已在預設的 WSL 發行版上啟用,該發行版是 Ubuntu。要更改您的預設 WSL 發行版,請執行
$ wsl --set-default <distro name>
選擇**應用並重啟**。
注意
Docker Desktop 安裝了兩個特殊用途的內部 Linux 發行版
docker-desktop
和docker-desktop-data
。第一個 (docker-desktop
) 用於執行 Docker 引擎 (dockerd
),而第二個 (docker-desktop-data
) 儲存容器和映象。這兩個發行版都不能用於一般開發。