如何从linux wsl2访问docker数据

ni65a41a  于 2023-05-06  发布在  Docker
关注(0)|答案(3)|浏览(253)

我正在使用WSL 2在Windows上运行Docker。docker数据目录可以通过以下路径从Windows访问:

\\wsl.localhost\docker-desktop-data\version-pack-data\community\docker

但是当我试图从WSL访问同一个文件夹时,我找不到它。
在linux终端中,我可以找到以下目录:

/mnt/wsl/docker-desktop-data/version-pack-data

但是,它是空的!它不显示community文件夹或它里面的任何其他文件夹!
操作系统:Windows 11 build 10.0.22000.176版本20.10.8,build 3967 b7 d Docker Desktop:版本4.0.0

huus2vyu

huus2vyu1#

出于某种原因,您必须在不同的路径上重新挂载它,如下所示:
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

chhkpiq4

chhkpiq42#

稍微老一点的问题被@ADJenks的答案抹去了,这肯定会起作用。
但恕我直言,一个更好的解决方案是我在this Super User answer中详细介绍的。因为这是一个相当长的阅读,我将在这里重复它。在WSL 2发行版中:

$ 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特性。

1dkrff03

1dkrff033#

WSL 2装载到不同的路径。
你在windows上看到的路径,如果我没记错的话,是用于docker-desktop和wsl 1的。这就是文件看起来不同的原因。
在windows上正确的路径将是这个路径(如果你使用Ubuntu-20.04作为你的子系统,如果不寻找你使用的子系统的路径):\wsl$\Ubuntu-20.04\mnt\wsl\docker-desktop-data

相关问题