最佳实践


  • 请始终使用最新版本的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和交换空间大小限制。

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.