如何通过 Windows 10 主页上的 virtualbox 从 docker 容器访问主机 OS 文件
How to access host OS files from docker container via virtualbox on Windows 10 home
我在 Windows 10 家用计算机上安装了 Docker 工具箱。当我点击快速启动图标时,我得到一个 bash shell,我可以 运行 一个像
这样的命令
> docker run -it ruby /bin/bash
这使我进入 docker Ruby 容器的 bash shell。该容器 运行ning 在 Docker 工具箱创建的 VirtualBox VM 上。 VM 的共享文件夹设置为:
Folder Path: \?\C:\Users
Folder Name: c/Users
read-only: unchecked
auto mount: checked
make permanent: checked
我希望能够从我的 docker 容器通过容器内名为 /code 的目录(即 运行ning Debian Jessie)。
如何配置我的 VM 或我的 Docker 容器以便能够从我的 docker 容器访问该文件夹?
关键是弄清楚如何表达跨越 Windows-VirtualBox 边界和 VirtualBox-Docker 边界的共享体积。
由于 VirtualBox VM 和 Windows10 home 之间的共享文件夹是 C:\Users,因此挂载必须位于该文件夹树下的某个位置。
- 我在 windows 中创建了一个名为 C:\Users\Jay\MyApp 的文件夹。这将在 VirtualBox VM 中可见。
- 然后我决定在 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 容器的控制台上。
我在 Windows 10 家用计算机上安装了 Docker 工具箱。当我点击快速启动图标时,我得到一个 bash shell,我可以 运行 一个像
这样的命令> docker run -it ruby /bin/bash
这使我进入 docker Ruby 容器的 bash shell。该容器 运行ning 在 Docker 工具箱创建的 VirtualBox VM 上。 VM 的共享文件夹设置为:
Folder Path: \?\C:\Users
Folder Name: c/Users
read-only: unchecked
auto mount: checked
make permanent: checked
我希望能够从我的 docker 容器通过容器内名为 /code 的目录(即 运行ning Debian Jessie)。
如何配置我的 VM 或我的 Docker 容器以便能够从我的 docker 容器访问该文件夹?
关键是弄清楚如何表达跨越 Windows-VirtualBox 边界和 VirtualBox-Docker 边界的共享体积。
由于 VirtualBox VM 和 Windows10 home 之间的共享文件夹是 C:\Users,因此挂载必须位于该文件夹树下的某个位置。
- 我在 windows 中创建了一个名为 C:\Users\Jay\MyApp 的文件夹。这将在 VirtualBox VM 中可见。
- 然后我决定在 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 容器的控制台上。