最佳實踐


  • 請始終使用最新版本的WSL。最低要求為WSL版本2.1.5,否則Docker Desktop可能無法正常工作。測試、開發和文件均基於最新的核心版本。較舊版本的WSL可能導致:

    • Docker Desktop定期掛起或在升級時掛起
    • 透過SCCM部署失敗
    • vmmem.exe佔用所有記憶體
    • 網路過濾器策略被全域性應用,而非針對特定物件
    • 容器出現GPU故障
  • 為了在使用繫結掛載檔案時獲得最佳檔案系統性能,建議您將原始碼和其他繫結掛載到Linux容器中的資料儲存在Linux檔案系統中,而不是Windows檔案系統中。例如,在Linux檔案系統中使用docker run -v <host-path>:<container-path>。您也可以參考Microsoft的建議

    • 只有當原始檔案儲存在Linux檔案系統中時,Linux容器才能接收檔案更改事件(“inotify事件”)。例如,一些Web開發工作流依賴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的大小,並將未使用的空間返回給作業系統。
  • 如果您擔心CPU或記憶體使用情況,可以配置分配給WSL 2實用程式VM的記憶體、CPU和交換空間大小限制。