在Docker容器中保留弹性搜索数据

时间:2016-01-05 20:56:00

标签: elasticsearch docker

我有一个正在运行的ES docker容器,我这样运行

docker run -p 80:9200 -p 9300:9300 --name es-loaded-with-data --privileged=true --restart=always es-loaded-with-data

我用一堆测试数据加载了ES并希望将其保存在那个状态,所以我跟进了

docker commit containerid es-tester
docker save es-tester > es-tester.tar

然后当我把它加载回数据时,一切都消失了......是什么给出了?

docker load < es-tester.tar

1 个答案:

答案 0 :(得分:12)

如果您从官方ES图片开始,则使用的是卷(https://github.com/docker-library/elasticsearch/blob/7d08b8e82fb8ca19745dab75ee32ba5a746ac999/2.1/Dockerfile#L41)。因此,Docker不会提交写入该卷的任何数据。 要备份数据,您需要将数据从容器中复制出来:docker cp <container name>:/usr/share/elasticsearch/data <dest>