最佳实践
始终使用最新版本的 WSL。您至少必须使用 WSL 版本 1.1.3.0,否则 Docker Desktop 可能无法按预期工作。测试、开发和文档基于最新的内核版本。旧版本的 WSL 可能会导致:
- Docker Desktop 定期挂起或在升级时挂起
- 通过 SCCM 部署失败
- 这
vmmem.exe
消耗所有内存 - 网络筛选策略要全局应用,而不是应用于特定对象
- 容器的 GPU 故障
为了在绑定挂载文件时充分利用文件系统性能,建议您将绑定挂载的源代码和其他数据存储到 Linux 容器中。例如,使用
docker run -v <host-path>:<container-path>
在 Linux 文件系统中,而不是在 Windows 文件系统中。您还可以参考 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 一直使用docker-desktop-data
分发(如果它已经由软件的早期版本创建)。 - 从版本 4.34 及更高版本开始,Docker Desktop 会自动管理托管 VHDX 的大小,并将未使用的空间返回给作系统。
- Docker Desktop 版本 4.30 及更高版本的安装不再依赖于
如果您担心 CPU 或内存使用情况,可以配置分配给 WSL 2 实用程序 VM 的内存、CPU 和交换大小限制。