Windows 上的 Docker Desktop WSL 2 后端

Windows Subsystem for Linux (WSL) 2 是 Microsoft 构建的完整 Linux 内核,它允许 Linux 发行版在无需管理虚拟机的情况下运行。通过在 WSL 2 上运行 Docker Desktop,用户可以利用 Linux 工作区并避免同时维护 Linux 和 Windows 构建脚本。此外,WSL 2 还改进了文件系统共享和启动时间。

Docker Desktop 使用 WSL 2 中的动态内存分配功能来改善资源消耗。这意味着 Docker Desktop 仅使用所需的 CPU 和内存资源,同时允许 CPU 和内存密集型任务(例如构建容器)运行得更快。

此外,使用 WSL 2,冷启动后启动 Docker 守护进程所需的时间明显加快。

先决条件

在打开 Docker Desktop WSL 2 功能之前,请确保您拥有:

提示

为了获得更好的 WSL 体验,请考虑启用 自 WSL 1.3.10(实验性)以来可用的WSL autoMemoryReclaim设置。

此功能增强了 Windows 主机回收 WSL 虚拟机内未使用内存的能力,确保提高其他主机应用程序的内存可用性。此功能对于 Docker Desktop 特别有益,因为它可以防止 WSL VM 在 Docker 容器映像构建期间在 Linux 内核的页面缓存中保留大量内存(以 GB 为单位),而不会在容器内不再需要时将其释放回主机。虚拟机。

打开 Docker 桌面 WSL 2

重要的

为了避免与在 Docker Desktop 上使用 WSL 2 发生任何潜在冲突,您必须在安装 Docker Desktop 之前卸载直接通过 Linux 发行版安装的任何早期版本的 Docker Engine 和 CLI。

  1. 下载并安装适用于 Windows的最新版本的 Docker Desktop 。

  2. 按照通常的安装说明安装 Docker Desktop。根据您使用的 Windows 版本,Docker Desktop 可能会在安装过程中提示您打开 WSL 2。阅读屏幕上显示的信息并打开 WSL 2 功能以继续。

  3. 从Windows 开始菜单启动 Docker Desktop 。

  4. 导航至“设置”

  5. “常规”选项卡中,选择“使用基于 WSL 2 的引擎”

    如果您在支持 WSL 2 的系统上安装了 Docker Desktop,则默认情况下会打开此选项。

  6. 选择应用并重新启动

现在,docker命令可以使用新的 WSL 2 引擎在 Windows 上运行。

在 WSL 2 发行版中启用 Docker 支持

WSL 2 向 Windows 添加了对“Linux 发行版”的支持,其中每个发行版的行为就像一个 VM,只不过它们都运行在单个共享 Linux 内核之上。

Docker Desktop 不需要安装任何特定的 Linux 发行版。 CLIdocker和 UI 在 Windows 上都可以正常工作,无需任何额外的 Linux 发行版。然而,为了获得最佳的开发人员体验,我们建议至少安装一个额外的发行版并启用 Docker 支持:

  1. 确保发行版在 WSL 2 模式下运行。 WSL 可以在 v1 或 v2 模式下运行发行版。

    要检查 WSL 模式,请运行:

    $ wsl.exe -l -v
    

    要将 Linux 发行版升级到 v2,请运行:

    $ wsl.exe --set-version (distro name) 2
    

    要将 v2 设置为将来安装的默认版本,请运行:

    $ wsl.exe --set-default-version 2
    
  2. 当 Docker Desktop 启动时,转到“设置” > “资源” > “WSL 集成”

    Docker-WSL 集成在默认 WSL 发行版(即Ubuntu)上启用 。要更改默认的 WSL 发行版,请运行:

    $ wsl --set-default <distro name>
    
  3. 选择应用并重新启动

笔记

Docker Desktop 安装两个专用内部 Linux 发行版docker-desktopdocker-desktop-data.第一个 ( docker-desktop) 用于运行 Docker 引擎 ( dockerd),第二个 ( docker-desktop-data) 存储容器和镜像。两者都不能用于一般开发。

其他资源