我在Windows 10笔记本电脑上运行docker,我使用Dockerfile设置了第一个运行Elasticsearch的容器,并且可以正常工作。每次我停止容器并再次启动它时,数据都消失了。
在Windows计算机上,我在C:/Docker/esdata
位置创建了一个文件夹,并在elasticsearch.yml
中添加了path.data: /usr/share/elasticsearch/data
是data is。在Dockerfile中,我添加了:
VOLUME /c/Docker/esdata:/usr/share/elasticsearch/data
但这仍然行不通,有人可以告诉我我在做什么错。
最佳答案
您的Dockerfile指定了图像的属性...无论在何处运行容器,它们都是相同的。
VOLUME /c/Docker/esdata:/usr/share/elasticsearch/data
没有按照您认为的那样做-您不能强制稍后运行镜像的人挂载该特定文件夹。 (VOLUME接受一个参数,即容器内要与写时复制文件系统分开的路径),而是在运行时使用docker run命令安装卷...
docker run -v /c/Docker/esdata:/usr/share/elasticsearch/data
这会将计算机上的路径安装到正在运行的容器中的路径。但是,如上所述,/ c / Docker对于运行docker的虚拟机不可用,您将不得不执行更多类似的操作
/c/Users/Docker/esdata:/usr/share/elasticsearch/data