1. 程式人生 > 實用技巧 >【Linux】Centos7基於docker容器下安裝elasticsearch以及可能遇到的錯誤

【Linux】Centos7基於docker容器下安裝elasticsearch以及可能遇到的錯誤

因為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

解決方案:

elasticsearchconfig目錄下,修改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容器後再次啟動