前言
帮助小伙伴快速部署研发或测试环境进行学习测试。springboot版本需要与ElasticSearch版本想对应,不同版本api不一致,会产生异常调用的情况。
一、拉取镜像
这里选择固定版本7.15.2
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.2
二、创建容器
docker run \
--name es \
--privileged=true \
-p 9200:9200 \
-p 9300:9300 \
-v /mydata/es/config:/usr/share/elasticsearch/config \
-v /mydata/es/data:/usr/share/elasticsearch/data \
-v /mydata/es/plugins:/usr/share/elasticsearch/plugins \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-d docker.elastic.co/elasticsearch/elasticsearch:7.15.2
查看运行中容器
docker ps
此时应该会启动失败也可以查看容器日志
docker logs -f es
为挂载目录授权
chmod 777 /mydata/es/config
chmod 777 /mydata/es/data
chmod 777 /mydata/es/plugins
三、复制配置文件到挂载目录
启动临时容器
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.15.2
复制配置文件到挂载目录
docker cp elasticsearch:/usr/share/elasticsearch/config /mydata/es
停止、删除临时容器
docker stop elasticsearch
docker rm -f elasticsearch
四、启动容器
docker start es
访问测试:http://ip:9200
五、开启跨域
此时采用ElasticSearch-Head 远程访问 ElasticSearch服务会因跨域问题而失败,
vi /mydata/es/config/elasticsearch.yml
添加以下内容:
http.cors.enabled: true
http.cors.allow-origin: "*"
重启容器:
docker restart es
六、添加ik分词器
下载ik分词器,ik分词器的版本一定要和ElasticSearch版本一致。
分词器历史版本下载地址:Releases · medcl/elasticsearch-analysis-ik · GitHub
将下载的elasticsearch-analysis-ik-7.15.2.zip文件拷贝至/mydata/es/plugins目录
解压缩
unzip elasticsearch-analysis-ik-7.15.2.zip -d ./elasticsearch-analysis-ik
删除elasticsearch-analysis-ik-7.15.2.zip原文件,不然容器启动会报错
rm -rf elasticsearch-analysis-ik-7.15.2.zip
重启容器
docker restart es
查看容器是否启动成功
docker ps
关注公众号”小猿架构“,发送 "数据湖" 免费获取 38页 数据湖建设方案。