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

What is the docker-desktop-data distro used for when running docker desktop with the WSL 2 engine

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

然而,当我 运行 docker 带有 WSL 引擎的桌面时,我看到它创建了 2 个 WSL 发行版。

  1. docker-桌面
  2. docker-桌面数据

我可以 shell 进入 docker-桌面发行版,就像我进入任何其他发行版一样。

但是尝试对 docker-desktop-data 做同样的事情只会让我退缩。

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

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

引用自the docker blog introducing the new wsl2 backend

This will create 2 WSL distros for you:

Docker-desktop, which I’ll call the bootstrapping distro
Docker-desktop-data, which I’ll call the data store distro

From a high level perspective, the bootstrapping distro essentially replaces Hyper-V, while the data store distro replaces the VHD that we previously attached to the VM.

The bootstrapping distro creates a Linux namespace with its own root filesystem based on the same 2 iso files we mentioned earlier (not entirely true, but close enough), and use the data-store distro as the backing store for container images etc. instead of a VHD (WSL 2 does not allow us to attach additional VHD at the moment, so we leverage cross-distro mounts for that).

博客 post 很好地介绍了 docker on wsl 的工作原理。

正如我所见,'docker-desktop' 之前的“*”表示它是它的头或主要分支。所以'-d'命令只会运行。 尝试将其切换为 'docker-desktop-data' 然后您可以 运行 特定的发行版。

DOCKER-桌面数据: