目錄
一、安裝 Elasticsearch
二、安裝 Kibana
三、安裝 IK 分詞器
四、Elasticsearch 常用配置
五、Elasticsearch 常用命令
一、安裝 Elasticsearch
(一)創建 Docker 網絡
因為后續還需要部署 Kibana 容器,所以需要讓 Elasticsearch 和 Kibana 容器互聯。創建一個 Docker 網絡:
docker network create es-net
(二)拉取 Elasticsearch 鏡像
以安裝 Elasticsearch 8.6.0 版本為例,執行以下命令拉取鏡像:
docker pull elasticsearch:8.6.0
(三)創建掛載點目錄
創建用于掛載數據、配置和插件的目錄,并設置權限:
mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugins
chmod 777 /usr/local/es/data
chmod 777 /usr/local/es/config
chmod 777 /usr/local/es/plugins
(四)部署單點 Elasticsearch 容器
運行以下命令啟動 Elasticsearch 容器:
docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.6.0
(五)關閉安全驗證(可選)
進入 Elasticsearch 容器,關閉安全驗證功能:
docker exec -it es /bin/bash
cd config
echo 'xpack.security.enabled: false' >> elasticsearch.yml
(六)重啟 Elasticsearch 容器
退出容器后,重啟容器以使配置生效:
docker restart es
(七)測試 Elasticsearch 是否安裝成功
訪問 http://<服務器IP>:9200
,如果返回類似以下內容,說明安裝成功:
{"name" : "es","cluster_name" : "docker-cluster","cluster_uuid" : "xxxxxx","version" : {"number" : "8.6.0","build_flavor" : "default","build_type" : "docker","build_hash" : "xxxxxx","build_date" : "xxxxxx","build_snapshot" : false,"lucene_version" : "xxxxxx","minimum_wire_compatibility_version" : "xxxxxx","minimum_index_compatibility_version" : "xxxxxx"},"tagline" : "You Know, for Search"
}
二、安裝 Kibana
(一)拉取 Kibana 鏡像
拉取與 Elasticsearch 版本匹配的 Kibana 鏡像:
docker pull kibana:8.6.0
(二)創建掛載點目錄
創建用于掛載 Kibana 數據和配置的目錄,并設置權限:
mkdir -p /usr/local/kibana/config /usr/local/kibana/data
chmod 777 /usr/local/kibana/data
chmod 777 /usr/local/kibana/config
(三)部署 Kibana 容器
運行以下命令啟動 Kibana 容器:
docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.6.0
(四)測試 Kibana 是否安裝成功
訪問 http://<服務器IP>:5601
,如果能夠正常訪問 Kibana 的 Web 界面,說明安裝成功。
三、安裝 IK 分詞器
(一)進入 Elasticsearch 容器
docker exec -it es /bin/bash
(二)安裝 IK 分詞器
在容器內執行以下命令安裝 IK 分詞器:
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.6.0/elasticsearch-analysis-ik-8.6.0.zip
(三)重啟 Elasticsearch 容器
退出容器后,重啟 Elasticsearch 容器以使插件生效:
docker restart es
四、Elasticsearch 常用配置
(一)修改 Elasticsearch 配置文件
進入容器的配置目錄,編輯 elasticsearch.yml
文件:
docker exec -it es /bin/bash
cd config
vim elasticsearch.yml
常見的配置項包括:
-
cluster.name
:設置集群名稱 -
node.name
:設置節點名稱 -
path.data
:設置數據存儲路徑 -
path.logs
:設置日志存儲路徑 -
network.host
:設置綁定的網絡接口 -
http.port
:設置 HTTP 服務端口
(二)設置 JVM 堆大小
通過環境變量 ES_JAVA_OPTS
設置 JVM 堆大小,例如:
docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \
elasticsearch:8.6.0
五、Elasticsearch 常用命令
(一)索引操作
-
創建索引
curl -X PUT "http://<服務器IP>:9200/my_index" -H 'Content-Type: application/json' -d' {"settings": {"number_of_shards": 3,"number_of_replicas": 2} } '
-
刪除索引
curl -X DELETE "http://<服務器IP>:9200/my_index"
-
查看索引
curl -X GET "http://<服務器IP>:9200/_cat/indices?v"
(二)文檔操作
-
添加文檔
curl -X POST "http://<服務器IP>:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d' {"field1": "value1","field2": "value2" } '
-
查詢文檔
curl -X GET "http://<服務器IP>:9200/my_index/_doc/1"
-
更新文檔
curl -X POST "http://<服務器IP>:9200/my_index/_doc/1/_update" -H 'Content-Type: application/json' -d' {"doc": {"field1": "new_value1"} } '
-
刪除文檔
curl -X DELETE "http://<服務器IP>:9200/my_index/_doc/1"
(三)集群狀態查詢
curl -X GET "http://<服務器IP>:9200/_cluster/health?pretty"
六、總結
通過以上步驟,你可以在 Docker 上成功安裝 Elasticsearch,并配置常用的網絡、數據掛載和插件安裝。掌握這些常用命令,可以幫助你更高效地管理和使用 Elasticsearch 集群。如果在使用過程中遇到任何問題,可以參考 Elasticsearch 官方文檔 或社區尋求幫助。