Docker 安装 ElasticSearch

什么是 Elastic Stack

Elastic Stack 如果你没有听过,那么 ELK 一定听过。ELK 是三款软件的简称,分别是 Elasticsearch
、Logstash
、Kibana
组成,随着 Elastic 的发展需要融入越来越的技术,比如 Beats
,如果再用每个技术的首字母大写拼接,名称会越来越长,所以技术团队决定换一个名称 Elastic Stack
,ELK
是之前的称呼 Elastic Stack
是新的称呼。
什么 Elasticsearch

全文搜索是很多网站常见功能,比如 GitHub 站内搜索、JD 商品搜索、B 站视频搜索。Elasticsearch
是当今最火的搜索引擎之一,它的底层基于另外一个 java
开源搜索引擎 Lucene
,是一款开源分布式搜索引擎,并且提供了一系列 REST API
操作接口。
docker 安装 Elasticsearch

1、拉去镜像
docker pull docker.io/elasticsearch:版本号
docker pull docker.io/elasticsearch:7.1.1
2、查看镜像
docker images

3、运行容器启动 Elasticsearch
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" b0e9f9f047e6
3.1、参数解释:
-d:后台启动
--name:容器名称
-p:端口映射
-e:设置环境变量
discovery.type=single-node:单机运行
b0e9f9f047e6:镜像id
如果启动不了,可以加大内存设置:-e ES_JAVA_OPTS="-Xms512m -Xmx512m"
3.2、使用 docker ps
命令查看容器状态

3.3、浏览器访问 Elasticsearch 地址(注:访问前先关闭防火墙)

4、安装 ik 分词器
docker exec -it es bash
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.1/elasticsearch-analysis-ik-7.1.1.zip
安装完毕之后输入:exit退出容器。
4.1、参数解释:
docker exec -it 容器id或容器名称 bash:进入容器内部,并以终端的形式输入命令
4.2、安装 ik 分词器后重启 Elasticsearch
docker restart 7f
4.3、postman 测试 ik 分词器(注意:把 Content-Type 设置为 application/json )

5、安装 es-head
docker pull mobz/elasticsearch-head:5

5.1、启动容器
docker start elasticsearch-head
5.2、访问 es-head

5.3、es-head 连接 Elasticsearch
当你输入 http://192.168.232.128:9200/ 点击连接时,会发现无法连接。是因为前后端分离开发,存在跨域问题,需要在服务端做 CORS 的配置。我们再次进入 Elasticsearch 容器内部,修改 elasticsearch.yml
配置。
docker exec -it es /bin/bash
[root@7f213e9fb6bb elasticsearch]# vi config/elasticsearch.yml
添加如下两条配置,注意冒号后面有空格,保存并退出。
http.cors.enabled: true
http.cors.allow-origin: "*"
如图:

最后退出容器,并重启 Elasticsearch。
[root@7f213e9fb6bb elasticsearch]# exit
exit
[root@localhost ~]# docker restart 7f
再次访问 es-head,连接成功。

6、结束语
本篇文章主要讲解 docker 如何安装 ElasticSearch7.1.1(单机版)+ik 分词器 +es-head 可视化插件。
本文作者为柠檬班罗杰老师,转载请注明出处!