使用Fig和Docker了解已装入的目录

时间:2015-01-22 22:04:02

标签: docker fig

我对无花果和码头工人容器感到困惑。

我正试图让Elastic Search在我的流浪盒上运行。

所以我有一个看起来像这样的图yml:

elasticsearch:
  image: dockerfile/elasticsearch
  ports:
    - "9200:9200"
  expose:
    - "9200"
  volumes:
    - /docker_data/elasticsearch:/data

我运行它,弹性搜索运行正常。然后我在那里卷曲一些数据,我看到了。

关于fig yaml的部分 - 我试图将elasticsearch容器中的/ data文件夹挂载到docker_data,这样数据就会保持不变。

然而,令人困惑的是,当我进入我的宿主流浪汉机器并进入/ docker_data / elasticsearch时......它为空

当我进入我的elasticsearch容器的/ data目录时...... 也是空的

奇怪的是数据是持久的 - 所以我很难找到数据实际存储在docker容器中的位置,因为数据应该存储在那里。

当用mysql替换elasticsearch时遇到了同样的问题 - 当我挂载/ var / lib / mysql时,它在容器和主机上都显示为空。

最奇怪的是,如果我删除卷部分,一切都会保持不变。所以现在我很困惑这是怎么发生的,为什么我甚至还需要安装音量。

我正在运行docker 1.4.1

1 个答案:

答案 0 :(得分:2)

我在理解卷时遇到了同样的问题。

您尝试做的是将容器中的卷安装到主机上,这是不可能的(从Docker 1.4.1开始的AFAIK)。

您只能将主机从您的主机挂载,这就是您正在做的以及为什么它是空的,因为Docker会为您创建一个空目录并将其安装在现有的“现有”上容器中的数据。

如果容器现在写入/data,它也会出现在您的主机上,但在执行此操作时要小心权限,尤其是使用Vagrant或boot2docker时。

如果删除卷,则容器会保留其/data,因为此文件夹被定义为容器Dockerfile的卷。有关卷的语法和持久性的详细信息,请查看文档。


地址:当您需要从容器中获取内容时,您可以执行的操作是/docker_data/elasticsearch:/data-to-copy然后fig run elasticsearch cp -r /data /data-to-copy。但我怀疑这对数据有用,虽然我在项目中something similar,但是对于应用程序模板的源代码。