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

Docker数据容器、boot2docker和本地文件系统,docker,boot2docker,Docker,Boot2docker,我正在慢慢地了解当前Docker的做法。我在Mac电脑上,用的是boot2docker 我已经能够使用docker-v local/directory:container/directory方法将容器目录链接到本地文件系统。很好,现在我可以在本地Mac文件系统中轻松地编辑站点代码,并使更改立即可用于我的容器(例如/var/www/html) 我现在正试图将我的容器分离成离散的关注点。例如,Web、数据库和文件(例如busybox)容器对于Wordpress站点非常有用。问题是,我不知道如何让我的

我正在慢慢地了解当前Docker的做法。我在Mac电脑上,用的是boot2docker

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

我现在正试图将我的容器分离成离散的关注点。例如,Web、数据库和文件(例如busybox)容器对于Wordpress站点非常有用。问题是,我不知道如何让我的文件容器定义可以链接到本地操作系统的卷(类似于boot2docker使用的-v local/directory:container/directory)

这可能不是最有说服力的问题,因为我仍在摸索学习Docker,但如果你能理解我试图实现的目标,我将非常感谢提供的任何指导

谢谢


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

边缘化的利什科夫
剽窃的恩格尔巴特

将主机目录装载为数据卷(在运行时)
u liskov
是容器的名称

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

“/host/directory/context”
是要装载的主机上的位置

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

python
当然是要运行的应用程序

server.py
是为本示例的“python”提供的参数


在容器中创建命名卷并将另一个容器装载到该卷
docker create-v/poop--name_liskov training/postgres
docker run-d——来自边缘化的_liskov的卷——命名剽窃的_engelbart ubuntu

这将创建两个容器。
u liskov
获取一个名为
poop
的卷,我从postgres培训图像中创建了它,因为这是用户指南中使用的。由于我们只是将容器设置为包含数据卷,而不是宿主应用程序,因此使用training/postgres映像在保持精简的同时提供了我们的功能


剽窃的(u engelbart)
边缘化的(u liskov)
中的卷挂上标志。

我可能误解了你的问题。-v标志用于将数据卷添加到容器中。您是否参考了用户指南?(我将链接)我引用了docker和boot2docker文档,但没有成功,这就是我来这里的原因。我有点慢,所以我会第三次重读文档。poop现在也是我最喜欢的回文——当你有孩子的时候,poop只是一个很好的词。我正在尝试你的例子,我认为它展示了我想要实现的目标,但我还没能让它发挥作用。我会继续努力并向你汇报。我终于成功了。我不确定我第一次尝试时它为什么不起作用,可能是缓存问题,但boot2docker提供的-v local path:container path特性实际上对数据容器起作用(正如人们所期望的那样)。因此,您可以使用一个web容器来引用引用本地文件系统的数据容器。[额外字符以满足注释最小值]
docker run -d -P --name marginalized_liskov -v /host/directory/context:/container/directory/context poop python server.py