Windows 主机 Docker + WSL2 - 如何将 Windows 目录挂载到 Linux 容器

时间:2021-03-03 15:37:26

标签: linux windows docker windows-subsystem-for-linux

我正在运行 Windows 10 作为我的主机,我正在尝试将 Windows 目录挂载到 Linux 容器(节点,基于 Debian)中。

以前,我使用 Hyper-V 后端和 dockerode 包与 Docker 守护程序交互以将我的 Windows 目录安装到我的容器中。我可以通过传入以下 Driver opt 行来创建 Docker 卷:

device: /host_mnt/d/path/to/my/dir

这里的关键字是 /host_mnt。

我正在将我的开发转移到使用 Docker 开发容器和 WSL2,但是,不再识别 host_mnt 路径。将主机 Windows 目录装入 Linux 容器的正确路径是什么?我正在运行 Docker Engine v20.10.3,使用基于 WSL 2 的引擎在我的 Docker 设置中被激活,我正在运行 Docker 桌面 3.2.0 (61504)。

1 个答案:

答案 0 :(得分:1)

经过一番激烈的谷歌搜索/StackOverflowing,我找到了魔法咒语。

/run/desktop/mnt/host/${driveLetter}/path/to/my/windows/dir

其中 ${driveLetter} 是 Windows 中的驱动器号,但小写(例如 c、d、e 等)

也许我在某处遗漏了一些文档,但现在我可以在 Windows 主机上运行我的 Node 容器,只需将我的文件从 Windows 主机直接挂载到我的容器中即可。

编辑:

上下文:

我的项目正在运行一个 Node 后端容器,它可以访问 Docker 守护程序以启动其他容器。这个容器可以产生新的容器(通过调用 Docker 守护进程)和停止容器。另一个职责是将一些目录挂载到新容器中。

我们通常部署在 Linux 环境中,但对于本地开发,我们使用 Windows。所以我们通常不关心这个,除非我们正在编写新代码/调试。我们将一些本地 Windows 目录安装到新生成的容器中(这是我想对原始问题做的事情)。通过 Node 和 Dockerode,我们调用 Docker Daemon 到 create Container 端点,使用 HostConfig->Mounts->VolumeOptions->DriverConfig 和 Windows 中的路径。

相关问题