Docker部署ElasticSearch和ElasticSearch-Head

Docker部署ElasticSearch和ElasticSearch-Head

 本篇主要講解使用Docker如何部署ElasticSearch:6.8.4 版本,講解了從Docker拉取到最終運行ElasticSearch 以及 安裝 ElasticSearch-Head 用來管理ElasticSearch相關信息的一個小工具,本博客系統首頁的搜索正是使用了ElasticSearch來實現的,因爲ElasticSearch 更新太快 以致於SpringData-ElasticSearch都跟不上 Es的更新 我也是一開始下載8.x的版本 致使SpringData-ElasticSearch 報錯 最終我選擇了6.8.4 在此記錄一下node

 1.Docker部署ElasticSearch:6.8.4版本

  1.1 拉取鏡像

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.8.4

  1.2 運行容器

  ElasticSearch的默認端口是9200,咱們把宿主環境9200端口映射到Docker容器中的9200端口,就能夠訪問到Docker容器中的ElasticSearch服務了,同時咱們把這個容器命名爲es。docker

docker run -d --name es -p 9200:9200 -p 9300:9300 
-e "discovery.type=single-node" 
-e ES_JAVA_OPTS="-Xms=256m -Xms=256m" 
docker.elastic.co/elasticsearch/elasticsearch:6.8.4

  說明:   -e discovery.type=single-node :表示單節點啓動   -e ES_JAVA_OPTS="-Xms=256m -Xms=256m" :表示設置es啓動的內存大小,這個真的要設置,否則後時候會內存不夠,好比我本身的辣雞服務器!後端

  1.3 內存不足問題

  centos下載完elasticsearch並修改完配置後運行docker命令:centos

  發現沒有啓動成功,去除命令的-d後打印錯誤以下跨域

Java HotSpot(TM) 64-Bit Server VM warning: INFO:
os::commit_memory(0x0000000085330000, 2060255232, 0) failed;
error=’Cannot allocate memory’ (errno=12)

  通過一番查找發現這是因爲elasticsearch6.0默認分配jvm空間大小爲2g,內存不足以分配致使。瀏覽器

  解決方法就是修改jvm空間分配   運行命令:bash

find /var/lib/docker/overlay/ -name jvm.options


查找jvm.options文件,找到後進入使用vi命令打開jvm.options以下:

將

-Xms2g  
-Xmx2g
修改成
-Xms512m  
-Xmx512m

  保存退出便可。再次運行建立運行elasticsearch命令,成功啓動。服務器

 2.Docker部署ElasticSearch-Heard

  2.1 拉取鏡像

docker pull  mobz/elasticsearch-head:5

  2.2 運行容器

docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

  2.3 啓動容器

docker start elasticsearch-head

  2.4 打開瀏覽器: http://IP:9100

  發現鏈接不上,是由於有跨域問題,由於先後端分離開發的因此須要設置一下escors

  2.5 進入剛剛啓動的 es 容器,容器name = es

docker exec -it es /bin/bash

  2.6 修改elasticsearch.yml文件

vi config/elasticsearch.yml

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

  其實就是SpringBoot的yml文件 添加跨域支持前後端分離

  2.7 退出容器 並重啓

exit
docker restart es

  2.8 訪問http://localhost:9100

es.png

 總結:

  本篇只是簡單的講解了如何用Docker安裝ElasticSearch 而且會遇到的坑,包括內存不足,或者版本過高等問題,以及ElasticSearch-Heard的安裝和跨域的配置 ,下一篇將講解ElasticSearch如何安裝中文分詞器

我的博客系統:https://www.askajohnny.com 歡迎訪問! 本文由博客一文多發平臺 OpenWrite 發佈!

相關文章
相關標籤/搜索