将数据从docker容器保留到主机

时间:2016-08-12 23:59:57

标签: windows elasticsearch docker dockerfile elastic-stack

我正在Windows 10笔记本电脑上运行docker,我已经设置了第一个使用Dockerfile运行Elasticsearch的容器,它可以运行。每当我停止容器并再次启动它时,数据就会消失。

在我的Windows机器上,我在位置C:/Docker/esdata创建了一个文件夹,在我的elasticsearch.yml我添加了path.data: /usr/share/elasticsearch/data,数据是。在Dockerfile中我添加了:

VOLUME /c/Docker/esdata:/usr/share/elasticsearch/data

但是这仍然不起作用,有人能告诉我我做错了什么。

1 个答案:

答案 0 :(得分:2)

你的Dockerfile指定了图像的属性......无论你在哪里运行容器,它们都是相同的。

VOLUME /c/Docker/esdata:/usr/share/elasticsearch/data

没有做你认为它正在做的事情 - 你不能强迫稍后运行你的图像的人安装该特定文件夹。 (VOLUME采用单个参数,即容器内部将与写入时复制文件系统分离的路径)而是使用docker run命令在运行时装入卷...

docker run -v /c/Docker/esdata:/usr/share/elasticsearch/data

这会将您计算机上的路径安装到正在运行的容器中的路径上。但是,如上所述,运行docker的虚拟机无法使用/ c / Docker,您将不得不做更多的事情

/c/Users/Docker/esdata:/usr/share/elasticsearch/data