Docker 安装 Elasticsearch 教程

目录

[一、安装 Elasticsearch](#一、安装 Elasticsearch)

[二、安装 Kibana](#二、安装 Kibana)

[三、安装 IK 分词器](#三、安装 IK 分词器)

[四、Elasticsearch 常用配置](#四、Elasticsearch 常用配置)

[五、Elasticsearch 常用命令](#五、Elasticsearch 常用命令)


一、安装 Elasticsearch

(一)创建 Docker 网络

因为后续还需要部署 Kibana 容器,所以需要让 Elasticsearch 和 Kibana 容器互联。创建一个 Docker 网络:

复制代码
docker network create es-net

(二)拉取 Elasticsearch 镜像

以安装 Elasticsearch 8.6.0 版本为例,执行以下命令拉取镜像:

bash 复制代码
docker pull elasticsearch:8.6.0

(三)创建挂载点目录

创建用于挂载数据、配置和插件的目录,并设置权限:

bash 复制代码
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 容器:

bash 复制代码
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 容器,关闭安全验证功能:

bash 复制代码
docker exec -it es /bin/bash
cd config
echo 'xpack.security.enabled: false' >> elasticsearch.yml

(六)重启 Elasticsearch 容器

退出容器后,重启容器以使配置生效:

bash 复制代码
docker restart es

(七)测试 Elasticsearch 是否安装成功

访问 http://<服务器IP>:9200,如果返回类似以下内容,说明安装成功:

bash 复制代码
{
  "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 镜像:

bash 复制代码
docker pull kibana:8.6.0

(二)创建挂载点目录

创建用于挂载 Kibana 数据和配置的目录,并设置权限:

bash 复制代码
mkdir -p /usr/local/kibana/config /usr/local/kibana/data
chmod 777 /usr/local/kibana/data
chmod 777 /usr/local/kibana/config

(三)部署 Kibana 容器

运行以下命令启动 Kibana 容器:

bash 复制代码
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 容器

bash 复制代码
docker exec -it es /bin/bash

(二)安装 IK 分词器

在容器内执行以下命令安装 IK 分词器:

bash 复制代码
./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 容器以使插件生效:

bash 复制代码
docker restart es

四、Elasticsearch 常用配置

(一)修改 Elasticsearch 配置文件

进入容器的配置目录,编辑 elasticsearch.yml 文件:

bash 复制代码
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 堆大小,例如:

bash 复制代码
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 常用命令

(一)索引操作

  • 创建索引

    bash 复制代码
    curl -X PUT "http://<服务器IP>:9200/my_index" -H 'Content-Type: application/json' -d'
    {
      "settings": {
        "number_of_shards": 3,
        "number_of_replicas": 2
      }
    }
    '
  • 删除索引

    bash 复制代码
    curl -X DELETE "http://<服务器IP>:9200/my_index"
  • 查看索引

    bash 复制代码
    curl -X GET "http://<服务器IP>:9200/_cat/indices?v"

(二)文档操作

  • 添加文档

    bash 复制代码
    curl -X POST "http://<服务器IP>:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
    {
      "field1": "value1",
      "field2": "value2"
    }
    '
  • 查询文档

    bash 复制代码
    curl -X GET "http://<服务器IP>:9200/my_index/_doc/1"
  • 更新文档

    bash 复制代码
    curl -X POST "http://<服务器IP>:9200/my_index/_doc/1/_update" -H 'Content-Type: application/json' -d'
    {
      "doc": {
        "field1": "new_value1"
      }
    }
    '
  • 删除文档

    bash 复制代码
    curl -X DELETE "http://<服务器IP>:9200/my_index/_doc/1"

(三)集群状态查询

bash 复制代码
curl -X GET "http://<服务器IP>:9200/_cluster/health?pretty"

六、总结

通过以上步骤,你可以在 Docker 上成功安装 Elasticsearch,并配置常用的网络、数据挂载和插件安装。掌握这些常用命令,可以帮助你更高效地管理和使用 Elasticsearch 集群。如果在使用过程中遇到任何问题,可以参考 Elasticsearch 官方文档 或社区寻求帮助。

相关推荐
练习时长一年1 小时前
git常用命令总结
大数据·git·elasticsearch
程序员潇潇1 小时前
Jenkins 插件下载速度慢安装失败?这篇文章可能解决你头等难题!
运维·自动化测试·软件测试·功能测试·程序人生·职场和发展·jenkins
百***48071 小时前
从零到上线:Node.js 项目的完整部署流程(包含 Docker 和 CICD)
docker·容器·node.js
minji...1 小时前
Linux 进程概念 (三) (进程状态,僵尸进程,孤儿进程,进程优先级)
linux·运维·服务器
敲上瘾2 小时前
Docker镜像构建优化指南:CMD/ENTRYPOINT、多阶段构建与缓存优化
运维·缓存·docker·容器·架构
❀͜͡傀儡师5 小时前
docker安装mac系统
macos·docker·容器
ζั͡山 ั͡有扶苏 ั͡✾9 小时前
EFK 日志系统搭建完整教程
运维·jenkins·kibana·es·filebeat
TH_19 小时前
腾讯云-(8)-宝塔面板-安装Docker
docker·云计算·腾讯云
RUNNING123!10 小时前
RedHat 7.9 docker 安装 zabbix
docker·容器·zabbix
jun_bai10 小时前
python写的文件备份网盘程序
运维·服务器·网络