0

我在我的 Windows 10 家用机器上安装了 Docker Toolbox。当我点击快速启动图标时,我得到一个 bash shell,我可以运行类似的命令

> docker run -it ruby /bin/bash

这让我进入了 docker Ruby 容器的 bash shell。该容器在 Docker Toolbox 创建的 VirtualBox VM 上运行。虚拟机有一个共享文件夹设置:

Folder Path:  \\?\C:\Users
Folder Name:  c/Users

read-only:  unchecked
auto mount:  checked
make permanent: checked

我希望能够通过容器中名为 /code 的目录(运行 Debian Jessie)从我的 docker 容器访问 Windows 10 主机上的 C:\Users\ 文件夹。

如何配置我的 VM 或我的 Docker 容器以能够从我的 Docker 容器访问该文件夹?

4

1 回答 1

1

关键是要弄清楚如何表达穿越 Windows-VirtualBox 边界和 VirtualBox-Docker 边界的共享卷。

由于 VirtualBox VM 和 Windows 10 主目录之间的共享文件夹是 C:\Users,因此挂载必须位于该文件夹树下的某个位置。

  1. 我在 Windows 中创建了一个名为 C:\Users\Jay\MyApp 的文件夹。这将在 VirtualBox VM 中可见。
  2. 然后我决定在 Docker 容器中调用文件夹 c/MyApp。

另一个关键点是卷挂载必须以“//”开头。所以完整的 docker 命令是:

docker run -it -v //c/Users/Jay/MyApp:/c/MyApp ruby /bin/bash

我可以使用一个不错的文本编辑器在 Windows 中编辑名为 C:\Users\Jay\MyApp\test.rb 的文件,然后在我的 Ruby Linux 容器中运行它

root@ad1e3223e3c7:/# cd c/MyApp
root@ad1e3223e3c7:/c/MyApp# ruby test.rb

test.rb 的输出出现在 Docker 容器的控制台上。

于 2018-02-24T23:37:09.397 回答