Docker安装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 官方文档 或社区寻求帮助。
到此这篇关于Docker安装Elasticsearch的实现示例的文章就介绍到这了,更多相关Docker安装Elasticsearch内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Docker镜像源配置的超全指南(Windows/Mac/Linux一键搞定)
做开发、搭环境的小伙伴肯定都遇到过这种崩溃时刻,Docker拉取官方镜像慢到离谱,要么超时报错,要么中途断连,Docker拉取官方镜像慢到离谱,要么超时报错,要么中途断连,覆盖Linux、Windows/Mac版Docker Desktop,需要的朋友可以参考下2026-03-03
解读Dockerfile中CMD和ENTRYPOINT是否可以混着用
在Dockerfile中,CMD和ENTRYPOINT可以混着用,CMD指定默认命令,ENTRYPOINT指定启动命令,CMD可以被docker run命令的参数覆盖2025-03-03
Ubuntu24.04LTS在线安装Docker引擎的详细过程
本文介绍了在Ubuntu 24.04 LTS系统上安装Docker引擎的步骤,包括卸载旧版本、设置Docker APT仓库、安装最新版或指定版本的Docker,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧2024-11-11


最新评论