Docker中安装Elasticsearch7.7.0+elasticsearch-head+ik分词

前期工作把docker安装好,设置镜像源

vim /etc/docker/daemon.json
 
#添加如下配置(如果没有该文件则新建)
 
{
  "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}
 
 
#保存并退出 然后重启docker服务
 
 
$  systemctl daemon-reload
 
 
$  systemctl restart docker

 

1.拉取镜像

 docker pull elasticsearch:7.7.0

2.启动容器(测试环境 设置单节点启动 -e "discovery.type=single-node") 

docker run --restart=always -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name elasticsearch

docker ps  # 查看是否启动成功

#访问127.0.0.1:9200 

3.进入docker容器ik分词安装在线安装

docker exec -it elasticsearch bash #进入docker容器

#在线安装
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip

由于网路原因时间很长这里推荐离线安装 ,需要停止删除之前创建的elasticsearch 容器,

docker stop elasticsearch
docker rm elasticsearch
docker run --restart=always -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node"  -v D:\elasticsearch:/var/elasticsearch/  --name elasticsearch 

 

安装IK分词器插件下载解压

https://github.com/medcl/elasticsearch-analysis-ik/releases

elasticsearch-analysis-ik-7.7.0.zip

#在es安装目录的plugins下,创建ik文件夹
mkdir elasticsearch-7.7.0/plugins/ik

#将下载好的zip包解压到刚才创建的ik文件夹中
unzip elasticsearch-analysis-ik-7.7.0.zip -d elasticsearch-7.7.0/plugins/ik

 重启es服务

docker restart elasticsearch

测试是否安装成功

curl -XGET -H 'Content-Type: application/json' 'http://localhost:9200/_analyze?pretty' -d '{
"analyzer" : "ik_max_word",
"text": "中华人民共和国国歌"
}'

4.可视化工具elasticsearch-head 安装

[root@localhost ~] docker pull mobz/elasticsearch-head:5
 
[root@localhost ~] docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
elasticsearch             7.7.0               7ec4f35ab452        3 weeks ago         757MB
mobz/elasticsearch-head   5                   b19a5c98e43b        3 years ago         824MB
 
[root@localhost ~] docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
74106a71c1c84cd2b7624cc4bfadf47789f627c73ffe9fb706591070cc875cba
 
[root@localhost ~] docker start elasticsearch-head
elasticsearch-head

5.开始链接elasticsearch服务 你会发现链接不上,由于是前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置

[root@localhost ~]# docker exec -it elasticsearch /bin/bash
[root@c5c298ccd03f elasticsearch]# vi config/elasticsearch.yml

添加如下配置:保存 退出容器 并重启

http.cors.enabled: true 
http.cors.allow-origin: "*"


操作如下:

[root@c5c298ccd03f elasticsearch]# exit
exit
[root@localhost ~]# docker restart elasticsearch
Error response from daemon: Cannot restart container elasticsearch: driver failed programming external connectivity on endpoint elasticsearch (776f8445f50cf5472cb5bf3ded903e2f5985a1aeff544fc2685d54aef629ce7e):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9300 -j DNAT --to-destination 172.17.0.2:9300 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1))

 可以看到我这里重启elasticsearch容器得时候 报错了 这个是由于docker 的网络原因引起的 重启一下docker服务就可以了

[root@localhost ~]# systemctl restart docker


查看我们服务 并启动

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                            NAMES
c5c298ccd03f        elasticsearch:7.7.0   "/tini -- /usr/local…"   About an hour ago   Up 3 seconds        0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS                        PORTS                                            NAMES
74106a71c1c8        mobz/elasticsearch-head:5   "/bin/sh -c 'grunt s…"   13 minutes ago      Exited (137) 35 seconds ago                                                    elasticsearch-head
c5c298ccd03f        elasticsearch:7.7.0         "/tini -- /usr/local…"   About an hour ago   Up 34 seconds                 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch
[root@localhost ~]# docker start 74106a71c1c8
74106a71c1c8
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                            NAMES
74106a71c1c8        mobz/elasticsearch-head:5   "/bin/sh -c 'grunt s…"   14 minutes ago      Up 2 seconds        0.0.0.0:9100->9100/tcp                           elasticsearch-head
c5c298ccd03f        elasticsearch:7.7.0         "/tini -- /usr/local…"   About an hour ago   Up 54 seconds       0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章