Docker 数据容器、boot2docker 和本地文件系统

Docker data container, boot2docker, and the local file system

我正在慢慢了解当前的 Docker 实践。我在 Mac 上,我正在使用 boot2docker。

我已经能够使用 docker -v local/directory:container/directory 方法将容器目录 link 到我的本地文件系统。太棒了,现在我可以在我的本地 Mac 文件系统中轻松编辑站点代码等内容,并立即将更改提供给我的容器(例如 /var/www/html)。

我现在正试图将我的容器分成离散的关注点。例如,Web、数据库和文件(例如 busybox)容器对于 Wordpress 站点很有用。事情是,我不知道如何让我的文件容器定义卷,然后我可以 link 到我的本地 OS (类似于 -v local/directory:container/directory boot2docker).

使用

这可能不是最 eloquent 的问题,因为我仍在摸索着学习 Docker,但如果您能理解我想要实现的目标,我将不胜感激提供的任何指导。

谢谢!

Docker Volumes User Guide


我将使用两个 docker 个容器作为我的简单示例

marginalized_liskovplagiarized_engelbart

将主机目录挂载为数据卷(在 运行 时)

docker run -d -P --name marginalized_liskov -v /host/directory/context:/container/directory/context poop python server.py

marginalized_liskov是容器的名称。

poop不仅是我最喜欢的回文,也是我们正在创建的卷的名称。

"/host/directory/context" 是主机上要挂载的位置

"/container/directory/context" 是您希望在容器中创建新卷的位置

python当然是申请到运行

server.py 是为此示例提供给 "python" 的参数。


在容器中创建命名卷并将另一个容器安装到该卷

docker create -v /poop --name marginalized_liskov training/postgres docker run -d --volumes-from marginalized_liskov --name plagiarized_engelbart ubuntu

这将创建两个容器。
marginalized_liskov 得到一个名为 poop 的卷,我从 postgres 训练图像构建它,因为这是用户指南中使用的。由于我们只是设置一个容器来包含数据量而不是托管应用程序,因此使用 training/postgres 映像可以提供我们的功能,同时保持精简。

plagiarized_engelbart 使用 --volumes-from 标志从 marginalized_liskov 安装卷。