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

 

 

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