目录映射

Windows/Mac下的Docker,如何把Windows的目录映射到容器里,有个小坑

匆匆过客 提交于 2019-12-07 09:26:29
Windows/Mac OS X下的docker是运行在一个Linux虚拟机的, 在这个虚拟机里,运行多个容器。三层啊,真不爽,什么事儿都是隔山跨水的,现在事儿就来了,容器里会报错说找不到被映射过来的文件。 拿Windows举例,有个目录叫做 C:¥WinTestDir ,放了几个文件,现在运行一个容器例如busybox,试图把这个目录映射到容器里的 /xxx/yyy目录下,无论以C:¥WinTestDir还是 /c/WindowsDir 还是 /WindowsDir 都没有效果。 docker run -it -v C:¥WinTestDir:/xxx/yyy busybox 结果会提示说"和:非法字符。 docker run -it -v /WinTestDir:/xxx/yyy busybox docker run -it -v /c/WinTestDir:/xxx/yyy busybox 结果容器里的/xxx/yyy目录下是空的。 这时一般都会意识到,这个冒号左边的目录实际上得是那个虚拟机里存在的目录才行,那么哪些目录被映射到虚拟机里了呢?Docker的文档里写了, Windows系统: C:¥Users -> /c/Users Mac OS X系统: /Users -> /Users 其它的目录压根没被映射进去,跟别提之后往容器里映射了。 docker-machine