3

我们正在尝试创建一个 Docker 容器,它将托管和运行我们的 webapp(主要用 PHP 和 Symfony2 编写)。

目前,容器嵌入了所有应用程序代码,在构建镜像时克隆(通过 Dockerfile)。该应用程序通过 Vagrant(Precise64 基础映像)在 OSX 上正确运行。我们现在正努力与主机(Vagrant -> OSX)共享容器嵌入代码以用于开发目的(在主机 OSX 上编辑文件应该会影响容器代码)。似乎没有办法将此文件夹从容器共享到主机。从主机共享文件夹到容器(命令-v的选项run)会覆盖原始容器文件夹。由于主机(Vagrant 和 OSX)无法读取原始位置,因此软链接也无法正常工作。

我确信解决方案是使用 Docker 的卷(http://docs.docker.io/en/latest/use/working_with_volumes/),但我们还没有弄清楚如何让它工作。

您对此有反馈/经验吗?

4

1 回答 1

3

您可以在以下行中将 OSX 中的文件共享到容器:

OSX dir(host) -shared fold-> /vagrant(vagrant) -volume-> container dir(container)

但文件保存在您的主机而不是容器中。

如果您想将文件保存在容器中并共享到您的 OSX 主机,您的所有容器文件都在 /var/lib/docker/aufs/mnt/{container id} 的 aufs 目录中,您可以将此折叠共享给 OSX由 vagrant 或其他人支持的羽毛:

container dir(container) -aufs-> /var/lib/docker/aufs/mnt/{id}(vagrant) -some-> OSX dir(host)
于 2014-01-13T11:39:46.033 回答