Windows WSL2 docker.exe 卷挂载与 wsl docker 卷挂载不同

时间:2021-04-22 09:50:43

标签: docker wsl-2

我在 Windows 上安装了支持 WSL2 的 Docker 桌面。一切都按预期工作。当我使用卷挂载 docker run -it --rm -v W:\projects:/projects busybox 运行容器时,我可以访问此文件夹中的所有 Windows 文件。

遗憾的是,docker 中的 Windows 共享的性能并不是那么好,所以我尝试从我的 wsl 机器安装一条路径。

我的印象是 docker 会在 wsl 中运行?所以我希望这两个命令输出相同:

docker run -it --rm -v /home/:/myHome busybox ls -l /myHome
wsl docker run -it --rm -v /home/:/myHome busybox ls -l /myHome

但使用 docker 的输出只是 total 0,其中使用 wsl 的输出是我的主目录。

当我从 Windows 运行 /home 时,有人可以向我解释这个 docker 目录在哪里(物理上/在 wsl 中/我的电脑)?是否可以运行 docker 并且它运行 wsl docker 而无需符号链接/路径修改,以便我可以在容器内安装我的 linux 目录?

1 个答案:

答案 0 :(得分:0)

如果安装了 wsl-2,您可以通过以下路径访问其文件系统:-

\\wsl$

/home 不会因为它物理上不存在于 Windows 的文件系统中而起作用

但是,如果您登录到 wsl 发行版,则可以使用 /home 或任何其他基于 linux 的目录。请注意,如果您从 Windows 运行以下命令,则不会挂载任何卷。它应该只从你的 wsl 发行版运行

docker run --name mycontainer -v /home:myhome busybox

要从 Windows 访问 /home 发行版中的 Ubuntu-16.04 目录:-

\\wsl$\Ubuntu-16.04\home

您可以将 Ubuntu-16.04 替换为您的 distro name - version

要挂载 wsl 下的任何目录,请确保您已打开选项“启用与我的默认 wsl 发行版的集成” https://docs.docker.com/docker-for-windows/wsl/

要将 wsl 的目录从 windows 挂载为卷,请以给定格式提供主机卷路径

docker run --name mycontainer -v \\wsl$\Ubuntu-16.04\home:/myHome busybox

基本上,docker run -v 对其执行环境(即 windows 或 wsl)有影响

如果您为 docker 启用了 wsl-2 但不想使用发行版的文件系统,则 docker 卷将出现在以下路径中

\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\
相关问题