由于我是window 10 home 而不是 pro版本,只能使用Docker Toolbox,其实docker for window对windows的支持更好,还有GUI,home版本安装Docker也是极为艰辛。好在我安装好了,但是日常使用也是比pro版的Docker有更多的坑,在此把我踩过的坑,记录下来,惠泽他人。
这个坑是Docker Toolbox在window 10 home 下挂载宿主机目录到容器,愿以为是要在Docker为win10 pro提供GUI里设置与c盘共享,Google了很多方法,还是在docker社区里一位老哥一针见血的指出了这其实是语法错误,附上图和链接。
出处:Can't set Docker Volume for Container in Windows Docker CE - Docker for Windows - Docker Forums
Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。
譬如我要启动一个centos容器,宿主机的C:/Users/T480S/work/Engine目录挂载到容器的/Engine目录,可通过以下方式指定:
docker run -it -v C:/Users/T480S/work/Engine:/Engine -p 8000:8000 steveny/predictionio:0.12.0 /bin/bash
这样在容器启动后,容器内会自动创建/Engine的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号”:”前面的目录是宿主机目录,后面的目录是容器内目录。
注意:容器目录不可以为相对路径,斜线为反斜线 ‘/’
但是依然还是报错了
报错:Error response from daemon: invalid mode: /Engine
愿以为是要在Docker为win10 pro提供GUI里设置与c盘共享,Google了很多方法,还是在docker社区里一位老哥一针见血的指出了这其实是语法错误,参考上图。
这是参考别人指出的错误之后修改的代码
docker run -it -v /c/Users/T480S/work/Engine:/Engine -p 8000:8000 steveny/predictionio:0.12.0 /bin/bash
无报错,正确输出