最近个人项目需要暂时用到es,使用docker安装,避免资源浪费。
elasticsearch
1.镜像拉取
docker pull elasticsearch:6.5.4
根据实际需求版本来即可
2.容器启动
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -p 9200:9200 -p 9300:9300 elasticsearch:6.5.4
启动完毕浏览器输入ip+9200端口无法访问,使用log命令查看状态
docker logs -f +容器名
明显看到划线部分提示的错误。
字面意思就是elasticsearch用户拥有的内存权限太小,至少需要262144。
OK,修改内存分配
- 查看max_map_count的值
cat /proc/sys/vm/max_map_count
提示65530,直接宿主机root账户下输入即可
- 重新设置max_map_count的值
sysctl -w vm.max_map_count=262144
提示 vm.max_map_count = 262144
- 再次启动容器
docker start elasticsearch(对应自己的容器名)
此时,再次查看日志不会报错
浏览器访问如下:
Head插件
1.拉取镜像
docker pull mobz/elasticsearch-head:5
2.启动容器
docker run --name es-head -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
浏览器访问:
访问失败,拉取不到信息,涉及跨域问题,需要修改elasticsearch容器的配置,解决方法如下
- 进入elasticsearch容器内部,修改配置文件elasticsearch.yml
依次执行如下命令
docker exec -it 容器名(容器id) /bin/bash
cd ./config
vim elasticsearch.yml
没有vim就是用vi
添加如下内容
http.cors.enabled: true
http.cors.allow-origin: "*"
- 重启容器
docker restart elasticsearch
ik 分词器安装
1.进入es容器内
docker exec -it elasticsearch /bin/bash
2.进入plugins内,执行安装命令
使用wget安装
cd plugins
mkdir ik
cd ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip
注意版本对应,版本对应关系参照elasticsearch与ik对应关系
unzip el......zip
重启容器!
完毕!
不成功你打我!
注意:如何使用的是云主机,记得需要在安全组放行9100、9200、9300端口,且云主机安装有宝塔的话,记得宝塔也需要放行