Docker toolbox -v 映射本地文件失败的问题

  • fennng 

我同时安装了 docker windows 和 docker toolbox
所以当我启用Hyper-v 的时候,我就可以使用 Docker windows, 而禁用 Hyper-v 的时候则使用 Docker toolbox.
有意思的是, 当我使用Docker toolbox 的时候, 原来的 docker windows 的 docker.exe 命令也可以工作。
不需要在 docker toolbox 的 terminal 里使用 docker, 在普通的 cmd 里也可以做到, 唯一不能做的就是不能使用 -v 参数
如果在cmd 里使用 -v 参数映射本地文件夹的话, 会得到这样的错误
docker run –rm -v %cd%:/root fennng/autosub ls docker: Error response from daemon: invalid mode: /root. See ‘docker run –help’.
如果不用绝对路径, 而用相对路径来表示本地文件夹的话, 不会出错, 但是映射其实没有成功。
所以当要使用 -v 参数的时候, 必需在 docker toolbox 的 terminal 里面进行, 而且当前目录必需是 %userprofile% 或其子目录
其实docker toolbox 的 terminal 也只是调用了 git 的 bash, 执行了一个脚本做了一些预设。
“C:\Program Files\Git\bin\bash.exe” –login -i “C:\Program Files\Docker Toolbox\start.sh”
但是有了这个预设就可以了映射了, 以下是一次成功的映射, 当前目录设置在“下载” 文件夹
dengy@CL221 MINGW64 /usr $ cd ~/Downloads
dengy@CL221 MINGW64 ~/Downloads $ docker run –rm -v $PWD:/root fennng/autosub ls

 

发表评论

您的电子邮箱地址不会被公开。