Windows WSL2 docker.exe卷装载不同于wsl docker卷装载



我在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 运行docker时,有人可以向我解释这个/home目录的位置(物理上/在 wsl 中/我的计算机中)吗?是否可以运行docker并且它可以在没有符号链接/路径修改的情况下运行wsl docker,以便我可以在容器内挂载我的 linux 目录?

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

\wsl$

/home不仅可以工作,因为它不在Windows的文件系统中物理存在。

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

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

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

\wsl$Ubuntu-16.04home

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

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

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

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

基本上,docker run -v会影响它正在执行的环境,即窗口或 wsl。

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

\wsl$docker-desktop-dataversion-pack-datacommunitydockervolumes

相关内容

  • 没有找到相关文章

最新更新