在docker容器中elasticsearch的导入导出方式
作者:真·晃过天空
文章详细介绍了如何使用Docker拉取Elasticsearch镜像,并导出和导入索引数据,还讨论了在Elasticsearch Head中解决请求头显示不正确的问题,包括从容器中复制文件、编辑文件和将文件回传到容器
docker中elasticsearch的导入导出
1、拉去dump镜像
docker pull taskrabbit/elasticsearch-dump
2、创建文件存放路径
mkdir -p /data/
导出的文件都是以.json结尾
导出数据
docker run --rm -ti -v /data/:/tmp taskrabbit/elasticsearch-dump --input=http://你的IP:9200/你的index --output=/tmp/你的文件名.json --type=data
存放在目录 /data/下
- 导出es的mapping
docker run --rm -ti -v /root/es_dump_data/:/tmp taskrabbit/elasticsearch-dump --input=http://你的ip:9200/你的index --output=/tmp/你的文件名.json --type=mapping
存放在木/root/es_dump_data下
- 导入mapping
docker run --rm -ti -v /root/es_dump_data:/tmp taskrabbit/elasticsearch-dump --input=/tmp/你的文件名.json --output=http://你的ip:9200/你的index --type=mapping
导入数据
docker run --rm -ti -v /data:/tmp taskrabbit/elasticsearch-dump --input=/tmp/你的文件名称.json --output=http://你的ip:9200/你的index --type=data
- 导出analyzer(没有分词就不需要)
docker run --rm -ti -v /root/es_dump_data/:/tmp taskrabbit/elasticsearch-dump --input=http://你的ip:9200/ciplatform --output=/tmp/analyzer.json --type=analyzer
- 导入analyzer(没有分词就不需要)
docker run --rm -ti -v /root/es_dump_data:/tmp taskrabbit/elasticsearch-dump --input=/tmp/dw_task_progress_index_analyzer.json --output=http://你的ip:9200/ --type=analyzer
es导入数据之后无法显示的请求头问题
我们需要修改一下elasticsearch-head 5的配置文件。
1、因为docker容器里面无法使用vi/vim
所以需要先将文件拷贝出来。
命令:
docker cp es_head:/usr/src/app/_site/vendor.js ./
说明:
将容器里面/usr/src/app/_site/vendor.js文件拷贝到宿主机的当前目录下,其中es_head为容器名,也可以写容器id。
2、编辑文件
vi vendor.js
共有两处:
1)6886行
contentType: "application/x-www-form-urlencoded
改成
contentType: "application/json;charset=UTF-8"
2)7573行
var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
改成
var inspectData = s.contentType === "application/json;charset=UTF-8" &&
3、将改完后的文件拷贝回容器
docker cp vendor.js es_head:/usr/src/app/_site
无需重启,刷新页面即可。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
