目的:防止以后忘了不会弄了记录一下
注意:
版本一定要一一对应
版本一定要一一对应
版本一定要一一对应
1、拉取镜像
docker pull elasticsearch:8.8.1 # es镜像
docker pull kibana:8.8.1 # kibana镜像
2、创建数据卷
进入到es的文件夹下(我的目录:/usr/local/docker-data/elasticsearch)
mkdir -p data plugins
# data数据,plugins插件扩展
# 对整个es的文件给权限,不然启动会报错
chmod 777 -R elasticsearch/
3、创建es网络,因为kibana需要通信
docker network create es-net
4、创建并运行es容器容器
docker run --name elasticsearch --network es-net -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" --restart=always --privileged -v /usr/local/docker-data/elasticsearch/data/:/usr/share/elasticsearch/data -v /usr/local/docker-data/elasticsearch/plugins:/usr/share/elasticsearch/plugins elasticsearch:8.8.1
discovery.type=single-node 单机非集群模式
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" 设置内存,视自己服务器或虚拟机大小而定
--network es-net 网络
5、ES 8+版本似乎默认是需要认证的,启动了之后不能直接访问,需要登录,再开发环境不需要因此可以配置为关闭
docker exec -it elasticsearch bash # 进入容器
cd config # 进入配置目录
ls # 可以看到 elasticsearch.yml文件,我们需要修改里面配置
在容器里面去没有vi、vim,因此用下面的方法添加 xpack.security.enabled: false
来关闭安全认证
echo 'xpack.security.enabled: false' >> elasticsearch.yml
重启后访问ip+9200
6、创建运行kibana
docker run -d --restart=always --name kibana --network es-net -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 kibana:8.8.1
访问 ip+5601
7、安装ik分词器
在线安装:
进入es容器
docker exec -it elasticsearch bash
第一种,在线下载:(从github下载的,没挂梯子就多尝试几次)
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.8.1/elasticsearch-analysis-ik-8.8.1.zip
第二种,去GitHub下载 下载地址
然后里面的内容如下:
在服务器对于plugins创建分词器文件夹,将上面的内容复制进去即可
最后重启es即可
8、验证是否安装成功
在服务器上执行命令或者其他电脑上也行,但是注意把localhost换成es的ip
curl 'localhost:9200/_analyze?pretty' -H 'Content-Type: application/json' -d '{
"analyzer": "ik_max_word",
"text": "我爱中国"
}'
结果如下
ok,到此结束。