Docker下安裝ElasticSearch和Kibana
阿新 • • 發佈:2020-11-13
elasticsearch安裝
執行容器
#拉取映象
docker pull elasticsearch:7.9.3
#建立資料目錄
mkdir /data/elasticsearch/
#執行一下容器
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.9.3
#把data、plugins、config三個目錄copy出來
docker cp <容器ID>:/usr/share/elasticsearch/data /data/elasticsearch
docker cp <容器ID>:/usr/share/elasticsearch/plugins /data/elasticsearch
docker cp <容器ID>:/usr/share/elasticsearch/config /data/elasticsearch
#遍歷資料夾賦一下許可權
chmod -R 777 /data/elasticsearch
#刪掉容器
docker rm -f <容器ID>
#再次執行容器,掛載目錄
docker run -d \
--name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
--env "node.name=elasticsearch" \
--env "cluster.name=test-elasticsearch" \
--env "bootstrap.memory_lock=true" \
--env "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
--env "discovery.type=single-node" \
--env "script.painless.regex.enabled=true" \
--volume /data/elasticsearch/data:/usr/share/elasticsearch/data \
--volume /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
--volume /data/elasticsearch/config:/usr/share/elasticsearch/config \
--volume /etc/localtime:/etc/localtime \
elasticsearch:7.9.3
這樣es就啟動好了。我們可以去檢查es是否安裝完成,可以輸入命令:
curl http://localhost:9200
或者在瀏覽器中開啟http://localhost:9200這個網址,如果能看到以下資訊則說明我們的es是已經安裝好了的
{
"name" : "elasticsearch",
"cluster_name" : "test-elasticsearch",
"cluster_uuid" : "_GdxokQOSCKcBd9lCkmiFw",
"version" : {
"number" : "7.9.3",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868",
"build_date" : "2020-10-16T10:36:16.141335Z",
"build_snapshot" : false,
"lucene_version" : "8.6.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
修改配置,解決跨域訪問問題
首先進入到容器中,然後進入到指定目錄修改elasticsearch.yml檔案
docker exec -it elasticsearch /bin/bash
cd /usr/share/elasticsearch/config/
vi elasticsearch.yml
在elasticsearch.yml的檔案末尾加上:
http.cors.enabled: true
http.cors.allow-origin: "*"
修改配置後重啟容器即可。
docker restart elasticsearch
或直接在掛載捲上修改 "/data/elasticsearch/config/elasticsearch.yml"
安裝ik分詞器
es自帶的分詞器對中文分詞不是很友好,所以我們下載開源的IK分詞器來解決這個問題。首先進入到plugins目錄中下載分詞器,下載完成後然後解壓,再重啟es即可。具體步驟如下: 注意:elasticsearch的版本和ik分詞器的版本需要保持一致,不然在重啟的時候會失敗。可以在這檢視所有版本,選擇合適自己版本的右鍵複製連結地址即可。點選這裡
cd /usr/share/elasticsearch/plugins/
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.3/elasticsearch-analysis-ik-7.9.3.zip
exit
docker restart elasticsearch
然後可以在kibana介面的dev tools中驗證是否安裝成功
POST test/_analyze
{
"analyzer": "ik_max_word",
"text": "你好我是東邪Jiafly"
}
不新增"analyzer": "ik_max_word",則是每個字分詞,可以在下面kibana安裝完成以後嘗試一下
kibana安裝
版本最好跟elasticsearch一致
docker pull kibana:7.9.3
docker run --name kibana --link=elasticsearch:test -p 5601:5601 -d kibana:7.9.3
啟動沒那麼快,等一會兒,啟動以後可以開啟瀏覽器輸入http://localhost:5601就可以開啟kibana的介面了