Macos OSX上位于/tmp中的Docker卷为空

Macos OSX上位于/tmp中的Docker卷为空,macos,docker,docker-machine,Macos,Docker,Docker Machine,当我尝试在OSX上运行一个容器(在Parallels VM上运行docker机器)并装载位于/tmp中的卷时,该卷似乎是空的 > mkdir -p /tmp/foo/bar > docker run -ti -v /tmp/foo:/foo ubuntu ls /foo 我希望看到它的列表栏,但它是空的。这项工作: > mkdir -p /Users/myuser/tmp/foo/bar > docker run -ti -v /Users/myuser/tmp/foo

当我尝试在OSX上运行一个容器(在Parallels VM上运行docker机器)并装载位于
/tmp
中的卷时,该卷似乎是空的

> mkdir -p /tmp/foo/bar
> docker run -ti -v /tmp/foo:/foo ubuntu ls /foo
我希望看到它的列表
,但它是空的。这项工作:

> mkdir -p /Users/myuser/tmp/foo/bar
> docker run -ti -v /Users/myuser/tmp/foo:/foo ubuntu ls /foo
bar

使用
mktemp
创建的文件夹也会发生同样的情况,这些文件夹最终位于
/folders
中。如何使docker正确装载这些文件夹?

这是一个众所周知的问题。 这背后的原因与虚拟机有关,当虚拟机创建时,它会将文件夹装载到您的用户目录中,这使得它成为容器可用的唯一文件夹。 这是类似的问题
这是一个众所周知的问题。 这背后的原因与虚拟机有关,当虚拟机创建时,它会将文件夹装载到您的用户目录中,这使得它成为容器可用的唯一文件夹。 这是类似的问题

作为一种解决方法,您只需将所需位置添加到底层VirtualBox计算机中即可。如果您的docker计算机为默认值,并且希望能够装载外部卷,则可以使用:

VBoxManager sharedfolder add default --name Volumes --hostpath /Volumes --automount

之后,
docker run-v/Volumes/Data:/mnt/Data ls/mnt/Data
将起作用。

作为一种解决方法,您只需将所需的位置添加到底层VirtualBox计算机。如果您的docker计算机为默认值,并且希望能够装载外部卷,则可以使用:

VBoxManager sharedfolder add default --name Volumes --hostpath /Volumes --automount

之后,
docker run-v/Volumes/Data:/mnt/Data ls/mnt/Data
将起作用。

谢谢您的提示。不是一个真正的解决方案,但我想现在没有。谢谢你的提示。这不是一个真正的解决方案,但我想现在没有。