使用 WSL 2 引擎运行 docker 桌面时使用的 docker-desktop-data 发行版是什么

Ada*_*per 25 docker windows-subsystem-for-linux docker-for-windows docker-desktop

在 Windows 上使用 Hyper-V 运行 docker 桌面时,我有一个名为 DockerDesktopVM 的虚拟机,我的 Linux 虚拟机在其中运行它的容器。

Docker桌面虚拟机

但是,当我使用 WSL 引擎运行 docker desktop 时,我看到它创建了 2 个 WSL 发行版。

  1. 码头工人桌面
  2. 码头工人桌面数据

在此处输入图片说明

我可以像任何其他发行版一样进入 docker-desktop 发行版。

在此处输入图片说明

但是试图对 docker-desktop-data 做同样的事情只会让我失望。

在此处输入图片说明

所以我的问题是 docker-desktop-data 发行版是什么,为什么它与 docker-desktop 发行版分开存在?显然,这个名字暗示了数据,但具体的数据是什么,为什么我不能像其他任何人一样跳入发行版?

Ada*_*per 21

docker-desktop-data 发行版被 docker-desktop 发行版用作容器映像等的后备存储。当 docker 在 Hyper-V 下运行时,通过在 Hyper-V 映像中安装 VHD 可以获得相同的结果,但这不是WSL2 不可能。

引用docker 博客介绍新的 wsl2 后端

这将为您创建 2 个 WSL 发行版:

Docker-desktop, which I’ll call the bootstrapping distro
Docker-desktop-data, which I’ll call the data store distro
Run Code Online (Sandbox Code Playgroud)

从高层次的角度来看,引导发行版本质上取代了 Hyper-V,而数据存储发行版则取代了我们之前附加到虚拟机的 VHD。

引导发行版基于我们之前提到的相同的 2 个 iso 文件创建一个具有自己的根文件系统的 Linux 命名空间(不完全正确,但足够接近),并使用数据存储发行版作为容器映像等的后备存储,而不是VHD(WSL 2 目前不允许我们附加额外的 VHD,因此我们利用跨发行版安装)。

这篇博文很好地介绍了 docker on wsl 的工作原理。

  • 一个相关的问题:为什么它总是在运行?当 WSL 发行版中没有进程运行时,WSL 发行版就会停止。当没有容器运行时,为什么要让这些 WSL2 发行版保持运行?他们无缘无故地霸占了 2GB 以上的内存。 (2认同)
  • 它们正在运行是因为 Docker Desktop 正在运行 (2认同)