一.docker-copomse部署es
1.创建文件
vim docker-compose.yaml
version: '3'
services:
elasticsearch:
image: elasticsearch:7.14.0
container_name: elasticsearch
environment:
- discovery.type=single-node
- "ES_SECURITY_ENABLE=true"
- "ELASTIC_PASSWORD=your_password"
ports:
- "9200:9200"
volumes:
- /opt/docker/es/data:/usr/share/elasticsearch/data
- /opt/docker/es/log:/usr/share/elasticsearch/logs
- /opt/docker/es/plugins:/usr/share/elasticsearch/plugins
kibana:
image: kibana:7.14.0
container_name: kibana
environment:
- "ELASTICSEARCH_USERNAME=your_name"
- "ELASTICSEARCH_PASSWORD=your_password"
ports:
- "5601:5601"
depends_on:
- elasticsearch
2.运行后登录查看
docker-comnpose up -d
docker-compose ps
访问kiban ,地址:http://ip:5601
二.迁移es数据至新部署的es容器中
注:下面方法只适用小数据量es数据迁移,且导出的索引中不包含里面创建的字段信息,只是单独导出该索引。
1.查询源es中存在索引
curl -X GET -u "your_name:your_password" "http://ip:9200/_cat/indices?v"
2.使用docker命令导出索引及索引数据(注:一次一个索引,此处以intellectual索引为例)
(1)导出intellectual索引至index_mapping.json文件中
docker run --rm -ti -v /tmp/data:/tmp taskrabbit/elasticsearch-dump --input=http://ip:9200/intellectual --output=/tmp/index_mapping.json --type=mapping
(2)导出intellectual索引内数据至index_data.json文件中
docker run --rm -ti -v /tmp/data:/tmp taskrabbit/elasticsearch-dump \
--input=http://yourName:yourPassword@ip:9200/intellectual \
--output=/tmp/index_data.json --type=data
3.新部署es机器导入索引及索引数据
(1)将源es导出的索引、索引数据文件传输至新机器上
(2)es导入索引
docker run --rm -ti -v /tmp/data:/tmp taskrabbit/elasticsearch-dump --output=http://ip:9200/intellectual --input=/tmp/index_mapping.json --type=mapping
(3)es导入索引数据
docker run --rm -ti -v /tmp/data:/tmp taskrabbit/elasticsearch-dump \
--output=http://yourName:yourPassword@ip:9200/user_index \
--input=/tmp/index_data.json --type=data
(4)查看新es中索引是否成功导入
curl -X GET -u "yourName:yourPassword" "http://ip:9200/_cat/indices?v"
其他索引迁移按照上述命令即可。