将数据从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