当我尝试在OSX上运行容器(在Parallels VM上使用docker-machine)并安装位于/tmp
的卷时,该卷似乎为空。
> mkdir -p /tmp/foo/bar
> docker run -ti -v /tmp/foo:/foo ubuntu ls /foo
我希望看到它列出bar
,但是它是空的。这有效:
> mkdir -p /Users/myuser/tmp/foo/bar
> docker run -ti -v /Users/myuser/tmp/foo:/foo ubuntu ls /foo
bar
使用mktemp
创建的文件夹也会出现同样情况,最终会出现在/folders
中。如何让docker正确安装这些文件夹?
答案 0 :(得分:0)
这是一个众所周知的问题。 这背后的原因是与VM相关联,当它创建时,它会在Users目录中安装文件夹,这使它成为容器可用的唯一文件夹。 这是类似的问题 https://github.com/docker/kitematic/issues/1192
答案 1 :(得分:0)
作为解决方法,您可以简单地将所需位置添加到基础VirtualBox计算机。如果您的docker机器是default
,并且您希望能够挂载外部卷,则可以使用:
VBoxManager sharedfolder add default --name Volumes --hostpath /Volumes --automount
然后,docker run -v /Volumes/Data:/mnt/Data ls /mnt/Data
将起作用。