位于OSX上/ tmp的Docker卷为空

时间:2016-06-07 07:32:00

标签: macos docker docker-machine

当我尝试在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正确安装这些文件夹?

2 个答案:

答案 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将起作用。