最佳實務
請務必使用最新版本的 WSL。您至少必須使用 WSL 版本 1.1.3.0,否則 Docker Desktop 可能無法正常運作。測試、開發和文件皆基於最新的核心版本。較舊版本的 WSL 可能會導致
- Docker Desktop 定期或升級時當機
- 透過 SCCM 部署失敗
vmmem.exe
消耗所有記憶體- 網路篩選器策略被全域套用,而非套用至特定物件
- 容器發生 GPU 錯誤
為了在繫結掛載檔案時獲得最佳檔案系統效能,建議您將繫結掛載到 Linux 容器的原始碼和其他資料儲存在 Linux 檔案系統中。例如,在 Linux 檔案系統中使用
docker run -v <主機路徑>:<容器路徑>
,而不是 Windows 檔案系統。您也可以參考 Microsoft 提供的建議。- 只有當原始檔案儲存在 Linux 檔案系統中時,Linux 容器才會收到檔案變更事件「inotify 事件」。例如,某些網頁開發工作流程依賴 inotify 事件在檔案變更時自動重新載入。
- 從 Linux 檔案系統繫結掛載檔案時,效能會比從 Windows 主機遠端掛載檔案時高得多。因此,請避免使用
docker run -v /mnt/c/users:/users
,其中/mnt/c
是從 Windows 掛載的。 - 反之,請從 Linux shell 使用
docker run -v ~/my-project:/sources <my-image>
之類的指令,其中~
會由 Linux shell 展開為$HOME
。
如果您擔心
docker-desktop-data
發行的大小,請查看Windows 內建的 WSL 工具。- Docker Desktop 4.30 版和更新版本的安裝不再依賴
docker-desktop-data
發行;Docker Desktop 現在會建立並管理自己的虛擬硬碟 (VHDX) 來進行儲存。(但請注意,如果較舊版本的軟體已建立docker-desktop-data
發行,Docker Desktop 仍會繼續使用它)。 - 從 4.34 版和更新版本開始,Docker Desktop 會自動管理受管理 VHDX 的大小,並將未使用的空間返還給作業系統。
- Docker Desktop 4.30 版和更新版本的安裝不再依賴
如果您擔心 CPU 或記憶體使用量,您可以設定分配給WSL 2 公用程式虛擬機器的記憶體、CPU 和交換大小限制。