使用Fig和Docker理解已安装的目录

我对无花果和docker集装箱感到困惑。

我正试图在我的stream浪盒子上运行弹性search。

所以我有一个无花果yml看起来像这样:

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

我运行它,弹性search运行良好。 然后,我在那里蜷缩一些数据,然后看到它。

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

然而,非常令人困惑的是,当我进入我的主机游走机器和cd进入/ docker_data / elasticsearch …它是空的

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

奇怪的是,数据是持久的 – 所以我很努力地找出数据实际存储在docker集装箱的位置,根据数据应该存储在那里的文档。

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

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

我正在运行docker1.4.1

我对卷的理解完全一样。

你试图做的是从容器中挂载一个卷到你的主机上 ,这是不可能的(自Docker 1.4.1起)。

你只能从你的主机装入一个卷到你的容器 ,这是你在做什么,为什么它是空的,因为Docker为你创build一个空目录,并将其“覆盖”在容器中的现有数据。

如果容器现在写入/data ,它也会出现在你的主机上,但是要特别注意Vagrant或者boot2docker的权限。

如果删除这些卷,容器将保留它的/data ,因为此文件夹被定义为容器的Dockerfile的卷。 查看文档以获取有关卷的语法和持久性的详细信息。


插件:当你需要从容器中获取某些东西时,你可以做些什么:mount /docker_data/elasticsearch:/data-to-copy然后fig run elasticsearch cp -r /data /data-to-copy 。 但是我怀疑这对于数据是有用的,尽pipe我在项目中做了类似的事情 ,但是对于应用程序模板的源代码。