码头工人和流浪者(关于装载量)

时间:2017-01-13 16:23:20

标签: docker vagrant docker-machine

假设我有一个通过Vagrant配置的虚拟机虚拟机。然后我用docker-machine配置它 - 到目前为止一切都很好:我可以docker-machine ssh进入框中并使用docker-machine ls列出它。

过去,当还没有使用dokcer-machine时,我通常的工作流程包括将sshing放入虚拟盒,安装docker并旋转我的容器。

据我所知,不再需要这个,因为我可以通过docker-machine(和docker本身)从虚拟盒外部(主要来自我的win dev机器)控制虚拟盒内的docker容器。

问题:当我从容器外部运行docker命令时,如何将目录从vm内部挂载到容器中?

进一步澄清的例子:

1)老方法。 ssh到vbox并运行

docker run -i -t --net=try-net \
--name XXXX \
-v ${PWD}/xxxx/yyyy.py:/zzzzz/xxxx/yyyy.py \
-d me/image

2)泊坞机方法。我将docker-machine env切换到盒子上。现在如何从框外引用vbox中的文件夹?这甚至可能吗?

来自我喜欢shell的win主机:

docker run -v /c/x/y/z:/home --name postgres3 -d postgres:9.5

得到我:

c:\ Program Files \ Docker \ Docker \ Resources \ bin \ docker.exe:来自守护程序的错误响应:无效的绑定装置规范" c:\ x \ y \ z \; C:\ Program Files( x86)\ Git \ home":无效模式:\ Program Files(x86)\ Git \ home。

1 个答案:

答案 0 :(得分:1)

如果您使用docker-toolbox install来启动容器,则会预先配置VM以将/ Users文件夹从主机共享到VM中,然后可以由容器使用。

由于您使用自己的Vagrant安装手动执行此操作,因此您需要自己共享文件夹。 This question应引导您完成从父操作系统到VM的共享文件夹的步骤,您可以使用Docker-machine启动Docker容器。

编辑:在父OS同步VM的情况下,您在VM中运行的任何容器都将在那里安装卷。 Docker-machine并不是一个真正的因素,它只是将docker CLI指向选定的docker主机。 docker CLI看起来像:

docker run -v /path/on/vm:/path/in/container image