docker安装elasticsearch
1.设置max_map_count不然启动es会启动不起来
查看max_map_count的值 默认是65530
cat /proc/sys/vm/max_map_count
重新设置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
--name表示镜像启动后的容器名称
-d: 后台运行容器,并返回容器ID;
-e: 指定容器内的环境变量
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
3.浏览器访问http://IP:9200
如果出现以下界面就是安装成功
尝试连接easticsearch会发现无法连接上,由于是前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置。
解决办法
修改docker中elasticsearch的elasticsearch.yml文件
docker exec -it elasticsearch /bin/bash
vi config/elasticsearch.yml
在最下面添加2行
http.cors.enabled: true
http.cors.allow-origin: "*"
退出并重启服务
exit
docker restart 容器id
4.安装 elasticsearch-head
#拉取镜像
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 )
5.浏览器打开: http://IP:9100
6.ElasticSearch-head 操作时不修改配置,默认会报 406错误码
#复制vendor.js到外部
docker cp 容器id:/usr/src/app/_site/vendor.js /usr/local/
#修改vendor.js
vim vendor.js
修改完成在复制回容器
docker cp /usr/local/vendor.js 容器id:/usr/src/app/_site
重启elasticsearch-head
docker restart 容器id
最后就可以查询到es数据了
docker安装Kibana
拉取kibana镜像并运行
docker pull kibana:7.5.1
docker run --name kibana \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://192.168.0.200:9200 \
-v /usr/local/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
-d kibana:7.7.0
--name kibana:将容器命名为kibana
-p 5601:5601:将容器的5601端口映射到宿主机的5601端口
-e ELASTICSEARCH_HOSTS=http://192.168.0.200:9200:配置elasticsearch地址
-d kibana:7.7.0:后台运行容器,并返回容器ID
1.kibana配置
注意:
运行kibana
容器,配置数据卷有坑。挂在到宿主机中的kibana.yml
会识别为一个文件夹,所以需要手动在宿主机中创建kibana.yml文件。
运行kibana容器,会将kibana.yml
空文件映射进入容器,导致宿主机访问不到容器。需将kibana.yml文件初始化。
#
# ** THIS IS AN AUTO-GENERATED FILE **
#
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.1.20:9200" ]
2.访问kibana地址 http://ip:5601/
linux操作防火墙
添加端口
firewall-cmd --zone=public --add-port=9300/tcp --permanent
立即生效
firewall-cmd --reload
移除端口
firewall-cmd --zone=public --remove-port=5601/tcp --permanent
阿里云服务器记得打开安全组
大工告成!!!
SpringBoot + Elasticsearch7.6实现简单查询及高亮分词查询(https://mp.weixin.qq.com/s/QQeB7UQFegr5bb1ft12flw)