我们使用taskrabbit/elasticsearch-dump docker容器版
下载taskrabbit/elasticsearch-dump
地址:https://download.csdn.net/download/qq_33093289/85664719
docker load -i elasticsearch-dump.tar
docker run --net=host --rm -ti -v /data/:/tmp taskrabbit/elasticsearch-dump --input=http://localhost:9200/hotel --output=hotel.json --type=data
docker run --net=host --rm -ti -v /data/:/tmp taskrabbit/elasticsearch-dump --input=http://elastic:es123%21@127.0.0.1:9200/hotel --output=/tmp/hotel_data.json --type=data
参数说明:
1.--net=host 表示本机es导入导出,不是本机不需要该参数
2./data/:/tmp 文件夹映射,前一个是本地使用的文件夹 第二个是docker容器使用的文件夹,两个文件夹映射,导出成功后,自动从tmp文件夹导出到data文件夹
3.--output 这里使用的文件夹/tmp,实际文件放在本地的/data文件夹,因为在前面已经做了映射,所以可以读取到文件
4.--type 导出那种类型:default: data, options: [settings, analyzer, data, mapping, policy, alias, template, component_template, index_template]
注意:上面写的只是导入导出es的数据的,如果要把es的索引结构和mapping还有数据导出可以用下面方式
docker run --net=host --rm -ti -v /data/:/tmp taskrabbit/elasticsearch-dump --input=http://elastic:es123%21@127.0.0.1:9200/hotel --output=/tmp/hotel_mapping.json --type=mapping
docker run --net=host --rm -ti -v /data/:/tmp taskrabbit/elasticsearch-dump --input=http://elastic:es123%21@127.0.0.1:9200/hotel --output=/tmp/hotel_analyzer.json --type=analyzer
将index_data.json文件放到/data/目录下, --input的这个/tmp指的是前面指向的临时文件夹
docker run --net=host --rm -ti -v /data/:/tmp taskrabbit/elasticsearch-dump --input=/tmp/hotel_data.json --output=http://elastic:es123%21@127.0.0.1:9200/hotel --type=data
docker run --net=host --rm -ti -v /data/:/tmp taskrabbit/elasticsearch-dump --input=/tmp/hotel_mapping.json --output=http://elastic:es123%21@127.0.0.1:9200/hotel --type=mapping
docker run --net=host --rm -ti -v /data/:/tmp taskrabbit/elasticsearch-dump --input=/tmp/hotel_analyzer.json --output=http://elastic:es123%21@127.0.0.1:9200/hotel --type=analyzer
docker run --net=host --rm -ti -v /data/:/tmp taskrabbit/elasticsearch-dump --input=http://elastic:es123%21@127.0.0.1:9200/hotel --output=/tmp/hotel_data.json --type=data --fileSize=100kb
docker run --net=host --rm -ti -v /data/:/tmp taskrabbit/elasticsearch-dump --input=/tmp/hotel_data.split-0.json --output=http://elastic:es123%21@127.0.0.1:9200/hotel --type=data
docker run --net=host --rm -ti -v /data/:/tmp taskrabbit/elasticsearch-dump --input=/tmp/hotel_data.split-1.json --output=http://elastic:es123%21@127.0.0.1:9200/hotel --type=data