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

我正在运行在Windows 10笔记本电脑的docker,我已经build立了我的第一个容器运行Elasticsearch使用Dockerfile,它的工作原理。 每当我停止容器并重新启动,数据就消失了。

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

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

但这仍然行不通,有人可以告诉我我做错了什么。

您的Dockerfile指定了图像的属性…无论您在哪里运行容器,都是相同的东西。

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

不是在做你认为正在做的事 – 你不能强迫稍后运行你的镜像的人来安装这个特定的文件夹。 (VOLUME采用一个参数,容器内的path将与写时复制文件系统分离),而是使用docker run命令在运行时装入卷…

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

这会将计算机上的path安装到正在运行的容器中的path。 但是,正如上面指出的那样,运行docker的虚拟机不能使用/ c / Docker,那么您将不得不做更多的事情

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