我在windows上使用WSL2运行Docker。在windows中,可以使用以下路径访问docker数据目录:
\wsl.localhostdocker-desktop-dataversion-pack-datacommunitydocker
但是当我尝试从WSL访问相同的文件夹时,我找不到它。
从linux终端,我可以找到以下目录:
/mnt/wsl/docker-desktop-data/version-pack-data
然而,它是空的!它不显示community
文件夹或任何其他文件夹里面!
操作系统:Windows 11 build 10.0.22000.176Docker:版本20.10.8,构建3967b7dDocker Desktop: Version 4.0.0
由于某种原因,您必须在不同的路径上重新挂载它,像这样:
在powershell- :
net use h: \wsl$docker-desktop-data
- In 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
稍微老一点的问题被@ADJenks的答案重新提了出来,这肯定有用。
但是我认为一个更好的解决方案是我在这个超级用户回答中详细说明的。因为这是一个相当长的阅读,我在这里重复一下。从WSL2发行版内部:
$ findmnt -a | grep "version-pack-datas"
| |-/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功能。
WSL2挂载到不同的路径
如果我没记错的话,你在windows上看到的路径是docker-desktop with wsl1。这就是为什么文件看起来不一样。
windows上的正确路径将是这个路径(如果你使用Ubuntu-20.04作为你的子系统,如果不查找你使用的子系统的路径): ubuntu - 20.04美元wsl mnt wsl docker-desktop-data