一.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"

其他索引迁移按照上述命令即可。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐