最佳實踐
請始終使用最新版本的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的大小,並將未使用的空間返回給作業系統。
- Docker Desktop 4.30及更高版本的安裝不再依賴
如果您擔心CPU或記憶體使用情況,可以配置分配給WSL 2實用程式VM的記憶體、CPU和交換空間大小限制。