目录
一、安装 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 官方文档 或社区寻求帮助。
                                    
评论记录:
回复评论: