在Windows上使用docker-machine将远程计算机目录挂载到其容器

时间:2016-05-31 07:40:59

标签: windows docker docker-machine

当我尝试将远程目录挂载到容器时:

$ eval $(docker-machine env manager)
$ docker run --restart=unless-stopped -d -p 3376:2375 \
-v /etc/docker:/certs:ro \
swarm manage --tlsverify \
--tlscacert=/certs/ca.pem \
--tlscert=/certs/server.pem \
--tlskey=/certs/server-key.pem \
consul://$(docker-machine ip keystore):8500

我收到错误:

C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: Invalid bind mount spec "C:\\Users\\MY_USERNAME\\AppData\\Local\\Programs\\Git\\etc\\docker;C:\\Users\\MY_USERNAME\\AppData\\Local\\Programs\\Git\\certs;ro": invalid mode: \Users\MY_USERNAME\AppData\Local\Programs\Git\certs;ro.
See 'C:\Program Files\Docker Toolbox\docker.exe run --help'.

看起来docker-machine正在尝试将localhost目录挂载到远程容器,但这不是我想要的。

解决方法是ssh进入 manager 计算机并在那里运行命令!那么码头机的整个目的是什么?

我错过了什么吗?如何使用docker-machine将远程机器目录挂载到其容器中?

注意: 我没有使用virtualbox,机器是用azure驱动程序创建的。

2 个答案:

答案 0 :(得分:2)

如果使用Git for Windows,您可以通过设置环境变量MSYS_NO_PATHCONV=1来禁用此自动路径转换行为。

答案 1 :(得分:1)

我猜你正在使用基于mingw的shell,例如。 Cygwin,Git Bash或类似的。该shell将尝试将面向Unix的路径扩展为Windows等效路径。

我建议使用不同的shell(如Powershell)