当我尝试将远程目录挂载到容器时:
$ 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驱动程序创建的。
答案 0 :(得分:2)
如果使用Git for Windows,您可以通过设置环境变量MSYS_NO_PATHCONV=1
来禁用此自动路径转换行为。
答案 1 :(得分:1)
我猜你正在使用基于mingw
的shell,例如。 Cygwin,Git Bash或类似的。该shell将尝试将面向Unix的路径扩展为Windows等效路径。
我建议使用不同的shell(如Powershell)