我正在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
但是这仍然不起作用,有人能告诉我我做错了什么。
答案 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