Docker 安装 Elasticsearch 教程_docker安装elasticsearch
目录
一、安装 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/pluginschmod 777 /usr/local/es/datachmod 777 /usr/local/es/configchmod 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/bashcd configecho \'xpack.security.enabled: false\' >> elasticsearch.yml
(六)重启 Elasticsearch 容器
退出容器后,重启容器以使配置生效:
docker restart es
(七)测试 Elasticsearch 是否安装成功
访问 http://: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/datachmod 777 /usr/local/kibana/datachmod 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://: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/bashcd configvim 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://:9200/my_index\" -H \'Content-Type: application/json\' -d\'{ \"settings\": { \"number_of_shards\": 3, \"number_of_replicas\": 2 }}\'
-
删除索引
curl -X DELETE \"http://:9200/my_index\"
-
查看索引
curl -X GET \"http://:9200/_cat/indices?v\"
(二)文档操作
-
添加文档
curl -X POST \"http://:9200/my_index/_doc/1\" -H \'Content-Type: application/json\' -d\'{ \"field1\": \"value1\", \"field2\": \"value2\"}\'
-
查询文档
curl -X GET \"http://:9200/my_index/_doc/1\"
-
更新文档
curl -X POST \"http://:9200/my_index/_doc/1/_update\" -H \'Content-Type: application/json\' -d\'{ \"doc\": { \"field1\": \"new_value1\" }}\'
-
删除文档
curl -X DELETE \"http://:9200/my_index/_doc/1\"
(三)集群状态查询
curl -X GET \"http://:9200/_cluster/health?pretty\"
六、总结
通过以上步骤,你可以在 Docker 上成功安装 Elasticsearch,并配置常用的网络、数据挂载和插件安装。掌握这些常用命令,可以帮助你更高效地管理和使用 Elasticsearch 集群。如果在使用过程中遇到任何问题,可以参考 Elasticsearch 官方文档 或社区寻求帮助。