Elasticsearch Docker環境下安裝


 

(1)下載鏡像(此步省略)
docker pull elasticsearch:5.6.8
(2)創建容器
docker run ‐di ‐‐name=tensquare_elasticsearch ‐p 9200:9200 ‐p 9300:9300  elasticsearch:5.6.8
(3)瀏覽器輸入地址: http://192.168.184.134:9200/ 即可看到如下信息

(4)我們修改demo的application.yml
 

 spring:   data:     elasticsearch:       cluster‐nodes: 192.168.184.135:9300


(5)運行測試程序,發現會報如下錯誤
NoNodeAvailableException[None of the configured nodes are available:  [{#transport#‐1}{exvgJLR‐RlCNMJy‐hzKtnA}{192.168.184.135} {192.168.184.135:9300}]  ]    at  org.elasticsearch.client.transport.TransportClientNodesService.ensureNodes AreAvailable(TransportClientNodesService.java:347)    at  org.elasticsearch.client.transport.TransportClientNodesService.execute(Tra nsportClientNodesService.java:245)    at  org.elasticsearch.client.transport.TransportProxyClient.execute(TransportP roxyClient.java:59)
這是因為elasticsearch從5版本以后默認不開啟遠程連接,需要修改配置文件

(6)我們進入容器

docker exec ‐it tensquare_elasticsearch  /bin/bash

 

此時,我們看到elasticsearch所在的目錄為/usr/share/elasticsearch ,進入config看到了 配置文件

elasticsearch.yml
我們通過vi命令編輯此文件,尷尬的是容器並沒有vi命令 ,咋辦?我們需要以文件掛載的 方式創建容器才行,這樣我們就可以通過修改宿主機中的某個文件來實現對容器內配置 文件的修改
(7)拷貝配置文件到宿主機
首先退出容器,然后執行命令:
docker cp  tensquare_elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml  /usr/share/elasticsearch.yml
(8)停止和刪除原來創建的容器
docker stop tensquare_elasticsearch   docker rm  tensquare_elasticsearch
(9)重新執行創建容器命令
docker run ‐di ‐‐name=tensquare_elasticsearch ‐p 9200:9200 ‐p 9300:9300 ‐v  /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch .yml elasticsearch:5.6.8
(10)修改/usr/share/elasticsearch.yml 將 transport.host: 0.0.0.0 前的#去掉后保 存文件退出。其作用是允許任何ip地址訪問elasticsearch .開發測試階段可以這么做,生 產環境下指定具體的IP
(11)重啟啟動
docker restart tensquare_elasticsearch

 

 

重啟后發現重啟啟動失敗了,這時什么原因呢?這與我們剛才修改的配置有關,因為 elasticsearch在啟動的時候會進行一些檢查,比如最多打開的文件的個數以及虛擬內存 區域數量等等,如果你放開了此配置,意味着需要打開更多的文件以及虛擬內存,所以 我們還需要系統調優。
(12)系統調優
我們一共需要修改兩處
修改/etc/security/limits.conf ,追加內容
* soft nofile 65536  * hard nofile 65536
nofile是單個進程允許打開的最大文件個數 soft nofile 是軟限制 hard nofile是硬限制
修改/etc/sysctl.conf,追加內容
vm.max_map_count=655360
限制一個進程可以擁有的VMA(虛擬內存區域)的數量
執行下面命令 修改內核參數馬上生效
sysctl ‐p
(13)重新啟動虛擬機,再次啟動容器,發現已經可以啟動並遠程訪問

IK分詞器安裝
(1)快捷鍵alt+p進入sftp , 將ik文件夾上傳至宿主機
sftp> put ‐r d:\setup\ik
(2)在宿主機中將ik文件夾拷貝到容器內 /usr/share/elasticsearch/plugins 目錄下。
docker cp ik tensquare_elasticsearch:/usr/share/elasticsearch/plugins/
(3)重新啟動,即可加載IK分詞器

 HEAD插件安裝 

(1)修改/usr/share/elasticsearch.yml ,添加允許跨域配置
http.cors.enabled: true  http.cors.allow‐origin: "*"
(2)重新啟動elasticseach容器
(3)下載head鏡像(此步省略)
docker pull mobz/elasticsearch‐head:5
(4)創建head容器
docker run ‐di ‐‐name=myhead ‐p 9100:9100 docker pull mobz/elasticsearchhead:5


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM