Elasticsearch docker安裝
Elasticsearch 安裝
我們之前已經使用過elasticsearch了,這裡不再對它進行介紹了,直接下載安裝,本章節將採用Docker安裝,不過在市面上還有很多采用linxu安裝,關於linux安裝,已經提供了安裝手冊,這裡就不講了。
(1)docker映象下載
docker pull elasticsearch:5.6.8
(2)安裝es容器
docker run -di --name=changgou_elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8
9200埠(Web管理平臺埠) 9300(服務預設埠)
瀏覽器輸入地址訪問:http://192.168.211.132:9200/
(3)開啟遠端連線
上面完成安裝後,es並不能正常使用,elasticsearch從5版本以後預設不開啟遠端連線,程式直接連線會報如下錯誤:
failed to load elasticsearch nodes : org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [{#transport#-1}{5ttLpMhkRjKLkvoY7ltUWg}{192.168.211.132}{192.168.211.132:9300}]
我們需要修改es配置開啟遠端連線,程式碼如下:
登入容器
docker exec -it changgou_elasticsearch /bin/bash
檢視目錄結構 輸入: dir
root@07f22eb41bb5:/usr/share/elasticsearch# dir
NOTICE.txt README.textile bin config data lib logs modules plugins
進入config目錄
cd config
檢視檔案
root@07f22eb41bb5:/usr/share/elasticsearch/config# ls elasticsearch.yml log4j2.properties scripts
修改elasticsearch.yml檔案
root@07f22eb41bb5:/usr/share/elasticsearch/config# vi elasticsearch.yml
bash: vi: command not found
vi命令無法識別,因為docker容器裡面沒有該命令,我們可以安裝該編輯器。
安裝vim編輯器
apt-get update
apt-get install vim
安裝好了後,修改elasticsearch.yml配置,如下圖:
vi elasticsearch.yml
修改如下圖:
同時新增下面一行程式碼:
cluster.name: my-application
重啟docker
docker restart changgou_elasticsearch
(4)系統引數配置
重啟後發現重啟啟動失敗了,這時什麼原因呢?這與我們剛才修改的配置有關,因為elasticsearch在啟動的時候會進行一些檢查,比如最多開啟的檔案的個數以及虛擬記憶體區域數量等等,如果你放開了此配置,意味著需要開啟更多的檔案以及虛擬記憶體,所以我們還需要系統調優
修改vi /etc/security/limits.conf ,追加內容 (nofile是單個程序允許開啟的最大檔案個數 soft nofile 是軟限制 hard nofile是硬限制 )
* soft nofile 65536
* hard nofile 65536
修改vi /etc/sysctl.conf,追加內容 (限制一個程序可以擁有的VMA(虛擬記憶體區域)的數量 )
vm.max_map_count=655360
執行下面命令 修改核心引數馬上生效
sysctl -p
重新啟動虛擬機器,再次啟動容器,發現已經可以啟動並遠端訪問
reboot
(5)跨域配置
修改elasticsearch/config下的配置檔案:elasticsearch.yml,增加以下三句命令,並重啟:
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 192.168.211.132
其中:
http.cors.enabled: true:此步為允許elasticsearch跨域訪問,預設是false。
http.cors.allow-origin: "":表示跨域訪問允許的域名地址(表示任意)。
重啟
docker restart changgou_elasticsearch
小提示:如果想讓容器開啟重啟,可以執行下面命令
docker update --restart=always 容器名稱或者容器id