从 WSL2 bash 访问 Docker Desktop 的卷

从 WSL2 bash 访问 Docker Desktop 的卷

如何从 Windows WSL2 bash 访问 Docker Desktop 应用程序的卷?我可以\\wsl.localhost\docker-desktop-data\version-pack-data\community\docker\volumes从 Windows 资源管理器中看到正确的内容,但从 WSL2 bash 中,此文件夹/mnt/wsl/docker-desktop-data/version-pack-data列表结果为空集。

我正在使用 Windows 11 Pro 版本 10.0.22000 Build 22000

答案1

稍微老一点的问题@ADJenks 的回答,这肯定会起作用。

但恕我直言,更好的解决方案是我在这个答案。由于这篇文章很长,我将在这里重复一遍。从 WSL2 发行版内部:

$ findmnt -a | grep "version-pack-data\s"
| |-/mnt/wsl/docker-desktop-data/version-pack-data        /dev/sdf[/version-pack-data]          ext4          rw,relatime,discard,errors=remount-ro,data=ordered
# Using the block device returned (sdf in this case):
$ sudo mount /dev/sdf /mnt/wsl/instances/docker-desktop-data -o X-mount.mkdir
$ cd /mnt/wsl/instances/docker-desktop-data

这样做的好处是您将使用原生 Ext4 文件系统。使用drvfs不会提供原生权限、符号链接和其他 POSIX 功能。

答案2

由于某种原因,您必须将其重新安装到不同的路径上,如下所示:

  1. 在 powershell 中:
net use h: \\wsl$\docker-desktop-data
  1. 在 wsl 中:
sudo mkdir /mnt/yourdockermount
sudo mount -t drvfs h: /mnt/yourdockermount

来源:https://github.com/microsoft/WSL/discussions/4176#discussioncomment-831817

上面的方法对我有用。还建议一步完成,如下所示:

在 wsl 中: sudo mount -t drvfs '\\wsl$\docker-desktop-data' /mnt/yourdockermount

来源:https://github.com/microsoft/WSL/discussions/4176#discussioncomment-1458301

相关内容