1.设置max_map_count
如果max_map_count不能启动,则es会启动不起来
max_map_count的值 默认是65530
我们需要将其修改为262144
cat /proc/sys/vm/max_map_count
sysctl -w vm.max_map_count=262144
2.拉取镜像
#拉取镜像
docker pull elasticsearch:7.7.0
#启动镜像
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.0
访问ip:9200出现以下界面表示安装成功
3.安装elasticsearch-head
3.1 拉取镜像
ealsticsearch只是后端提供各种api,那么怎么直观的使用它呢?elasticsearch-head将是一款专门针对于elasticsearch的客户端工具。
#拉取镜像
docker pull mobz/elasticsearch-head:5
#创建容器
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
#启动容器
docker start elasticsearch-head
or
docker start 容器id (docker ps -a 查看容器id )
浏览器打开: http://IP:9100
我们会发现easticsearch未连接,这是由于前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置
3.2 配置跨域
修改docker中elasticsearch的elasticsearch.yml文件
# 进入镜像
docker exec -it elasticsearch /bin/bash
# 进入到 config目录
cd ./config/
# 编辑elasticsearch.yml文件
vi elasticsearch.yml
在文件的最后添加
http.cors.enabled: true
http.cors.allow-origin: "*"
重启服务
再次访问http://IP:9100,便会出现以下结果
接下来我们只需进行最后一步操作就结束elasticsearch-head的配置了
#复制vendor.js到外部
docker cp 容器id:/usr/src/app/_site/vendor.js ./
#修改vendor.js
vim vendor.js
将该文件 6886行以及7573行的信息改为:
application/json;charset=UTF-8
修改完成之后在重新复制回容器
docker cp ./vendor.js elasticsearch-head:/usr/src/app/_site/vendor.js
重启服务
4.安装ik分词器
4.1 下载安装包
4.2 将ik安装包放入elasticsearch镜像的plugins目录下
# 进入容器内
docker exec -it elasticsearch /bin/bash
# 在plugins目录下创建ik目录
mkdir ./ik
# 将安装包复制到镜像 内
docker cp ./elasticsearch-analysis-ik-7.7.0.zip elasticsearch:/usr/share/elasticsearch/plugins/ik/
# 再次进入镜像进行 解压
unzip elasticsearch-analysis-ik-7.7.0.zip
重启 镜像