1. 程式人生 > 其它 >docker安裝Elasticsearch和Elasticsearch-head

docker安裝Elasticsearch和Elasticsearch-head

技術標籤:linuxelasticsearchdockeresjava

docker安裝Elasticsearch和Elasticsearch-head


一、Elasticsearch是什麼?

Elasticsearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java語言開發的,並作為Apache許可條款下的開放原始碼釋出,是一種流行的企業級搜尋引擎。Elasticsearch用於雲端計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。。。

二、安裝步驟

1.docker安裝Elasticsearch

docker pull elasticsearch:7.0.0
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" -d --name elasticsearch  -p 9200:9200 -p 9300:9300  容器ID

-e ES_JAVA_OPTS="-Xms256m -Xmx256m" //設定初始堆記憶體和最大記憶體 也可以調整虛擬機器記憶體
-e "discovery.type=single-node"
//單機需加上,如不加上,可能會報錯。

如報錯:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解決方法:
vim /etc/sysctl.conf檔案最後新增一行
vm.max_map_count=262144
即可永久修改

2.docker安裝Elasticsearch-head

docker pull mobz/elasticsearch-head:5 
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:
5

如遇到head連線es跨域問題,則在容器內conf/elasticsearch.yml下加上

http.cors.enabled: true
http.cors.allow-origin: "*"

ElasticSearch-head 操作時不修改配置,預設會報 406錯誤碼。
解決方法:
修改容器內/usr/src/app/_site/vendor.js
① 6886行 contentType: "application/x-www-form-urlencoded
         改成
     contentType: “application/json;charset=UTF-8”
②. 7574行 var inspectData = s.contentType === “application/x-www-form-urlencoded” &&
        改成
     var inspectData = s.contentType === “application/json;charset=UTF-8” &&

總結

在瀏覽器中輸入es-head容器IP:9100,可以看到如下頁面:

在這裡插入圖片描述

在es-head地址框中輸入es(或者es叢集)訪問地址,即可監控es(或者es叢集)的監控狀態,並可以方便地操作es的索引資料。