【Linux】Centos7基於docker容器下安裝elasticsearch以及可能遇到的錯誤
阿新 • • 發佈:2020-12-14
因為ElasticSearch是java開發的 所以我們要先安裝java環境
安裝jdk環境https://www.cnblogs.com/donleo123/p/14131743.html
一、安裝
1、搜尋映象,拉取下載
docker search elasticsearch
選擇版本號
docker pull elasticsearch:7.10.1
2、啟動容器
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name 容器名 容器id
引數說明:
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" //配置虛擬機器記憶體引數 -d //後臺執行 -p //埠對映 --name //設定名字
3、在瀏覽器輸入地址http://ip:9200/ ,如果出現以下頁面表示安裝成功
二、安裝過程中可能遇到的問題:
1、elasticsearch在伺服器啟動後過一段時間會自動關閉
查詢檔案jvm.options檔案
find / -name jvm.options
編輯檔案
vi 檔案地址
修改引數,預設是-Xms1g和-Xmx1g,把記憶體分配小點
-Xms256m
-Xmx256m
2、再次啟動報max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
檢視啟動日誌:
docker logs -f 容器id
解決:
切換到root使用者
執行命令:
sysctl -w vm.max_map_count=262144
檢視結果:
sysctl -a|grep vm.max_map_count
顯示:
vm.max_map_count = 262144
上述方法修改之後,如果重啟虛擬機器將失效,所以:
解決辦法:
在 /etc/sysctl.conf檔案最後新增一行
vm.max_map_count=262144
即可永久修改
3、啟動報錯:ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
解決方案:
在elasticsearch
的config
目錄下,修改elasticsearch.yml
配置檔案,將下面的配置加入到該配置檔案中:
cluster.initial_master_nodes: ["node-1"]
ip替換host1等,多節點請新增多個ip地址,單節點可寫按預設來
#配置以下三者,最少其一
#[discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]
cluster.initial_master_nodes: ["node-1"] #這裡的node-1為node-name配置的值
附:重新啟動容器先rm容器後再次啟動