安装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
|