安装ElasticSearch
镜像拉取
1
   | docker pull docker.elastic.co/elasticsearch/elasticsearch:7.1.1
   | 
 
启动容器
1
   | docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" docker.elastic.co/elasticsearch/elasticsearch:7.1.1
   | 
 
相关配置
1
   | docker exec -it es /bin/bash
   | 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
   | # 显示文件 ls 结果如下: LICENSE.txt  README.textile  config  lib   modules NOTICE.txt   bin             data    logs  plugins
  # 进入配置文件夹 cd config
  # 显示文件 ls 结果如下: elasticsearch.keystore  ingest-geoip  log4j2.properties  roles.yml  users_roles elasticsearch.yml       jvm.options   role_mapping.yml   users
  # 修改配置文件 vi elasticsearch.yml
  # 加入跨域配置 http.cors.enabled: true http.cors.allow-origin: "*"
  # 退出容器 exit
   | 
 
验证
安装ik分词器
准备分词器压缩包
1
   | docker exec -it es /bin/bash
   | 
 
1
   | mkdir /usr/share/elasticsearch/plugins/ik
   | 
 
1
   | docker cp elasticsearch-analysis-ik-7.1.1.zip es:/usr/share/elasticsearch/plugins/ik/
   | 
 
附:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.1/elasticsearch-analysis-ik-7.1.1.zip
1
   | scp -i ~/.ssh/xxx.pem -C elasticsearch-analysis-ik-7.1.1.zip {user}@{ip}:/root
  | 
 
解压安装
1
   | docker exec -it es /bin/bash
   | 
 
1
   | cd /usr/share/elasticsearch/plugins/ik
   | 
 
1
   | unzip elasticsearch-analysis-ik-7.1.1.zip
   | 
 
1
   | rm -rf elasticsearch-analysis-ik-7.1.0.zip
   | 
 
基于Docker使用elasticsearch-dump
镜像拉取
1
   | docker pull taskrabbit/elasticsearch-dump
   | 
 
创建文件存放路径
用例
- 运用 
docker run --rm -ti taskrabbit/elasticsearch-dump 调用能力 
-v <your dumps dir>:<your mount point> 指定外部挂载到 docker 中的目录 
- 三种导出方式:(实际使用方式三选一,三个文件都要导出)
 
1 2 3 4 5 6 7 8
   | # 将analyzer分词从es复制到另一个es docker run --rm -ti elasticdump/elasticsearch-dump --input=http://ip1:9200/index1 --output=http://ip2:9200/index2 --type=analyzer
  # 将mapping从index复制到另一个index docker run --rm -ti elasticdump/elasticsearch-dump --input=http://ip1:9200/index1 --output=http://ip1:9200/my_index --type=mapping   # 将data复制到文件 docker run --rm -ti -v /data:/tmp elasticdump/elasticsearch-dump --input=http://ip:9200/my_index --output=/tmp/my_index_data.json --type=data
   | 
 
1 2 3 4
   | # 从文件中恢复data docker run --rm -ti -v /data:/tmp elasticdump/elasticsearch-dump --input=/tmp/my_index_data.json --output=http://ip:9200/my_index --type=data
  # mapping和analyzer略
   | 
 
1
   | Error: connect ECONNREFUSED 127.0.0.1:9200
   | 
 
访问 localhost 时 docker 要添加 --net=host,表示宿主和容器同网络,如不添加访问的是容器内的网络。
1
   | docker run --net=host --rm -ti -v /data:/tmp elasticdump/elasticsearch-dump --input=/tmp/my_index_data.json --output=http://localhost:9200/my_index --type=data
   |