【问题标题】:Persist data from docker container to host machine将数据从 docker 容器持久化到主机
【发布时间】:2016-12-20 01:19:19
【问题描述】:

我在 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

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

【问题讨论】:

  • C:/Users 是 Docker Toolbox 和 Docker for Windows 中的默认共享目录。

标签: windows elasticsearch docker dockerfile elastic-stack


【解决方案1】:

你的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2021-02-23
    • 2016-04-09
    相关资源
    最近更新 更多