一.環境
準備一臺有docker環境的虛擬機,需要注意的是分配內存記得一定大於2G,因爲ES需要的內存就至少要1G了
二.拉取鏡像
進入docker hub查詢自己需要的es版本
這裏以安裝7.6.0爲例 右邊有拉取鏡像的指令,直接複製,在linux下執行即可拉取鏡像
這裏鏡像已拉取完畢
三.容器運行ES
這裏強烈建議按照docker hub的文檔來啓動,不然會遇到很多坑
先創建用戶定義的網絡(用於連接到連接到同一網絡的其他服務(例如,Kibana))
這一步非常重要,不然kibana後面會一直連接不上es
docker run -it --net esnetwork --name elasticsearch -d -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.6.0
9300:ES節點之間的通訊使用
9200:ES節點和外部通訊使用
docker ps -a如果發現容器啓動失敗
docker logs elasticsearch查看日誌 發現報錯
問題1 elasticsearch用戶擁有的內存權限太小,至少需要262144
vim /etc/sysctl.conf 加入
vm.max_map_count=655360 然後執行sysctl -p讓系統重新加載vm.max_map_count參數
刪除之前的容器再次重啓
問題2 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
需要再容器啓動命令上加入-e "discovery.type=single-node"
測試 瀏覽器訪問http://192.168.56.101:9200/
四.安裝Kibana
注意最好和ES版本一致 這裏同樣是7.6.0版本
下載容器後
運行kibana容器
docker run --net esnetwork --name kibana -e ELASTICSEARCH_URL=http://127.0.0.1:9200 -p 5601:5601 -d kibana:7.6.0
這裏要和上面的es處於一個自定義網絡 不然會出現下面的情況
訪問出錯 查看日誌
docker logs kibana
發現
docker exec -it kibana /bin/bash 進入交互模式
vi config/kibana.yml
發現host爲http://elasticsearch:9200 更改爲實際IP地址
然後重啓kibana容器
訪問http://192.168.56.101:5601 發現啓動正常