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 官方文档 或社区寻求帮助。

相关推荐
文牧之5 分钟前
PostgreSQL 常用日志
运维·数据库·postgresql
蓝莓味柯基11 分钟前
DevOps:概念与学习路径
运维·学习·devops
FJW02081426 分钟前
【Linux】web服务器的部署和优化
linux·运维·服务器·rhce
有谁看见我的剑了?41 分钟前
docker 运行时权限和 Linux 能力了解
linux·docker·容器
平生不喜凡桃李1 小时前
Linux 进程控制
linux·运维·服务器
鱼与宇1 小时前
Linux常用命令
linux·运维·服务器
小南家的青蛙1 小时前
lspci的资料
linux·运维·服务器
敖云岚1 小时前
【那些年踩过的坑】Docker换源加速详细教程(截至2025年4月)
运维·docker·容器
TracyCoder1232 小时前
ElasticSearch深入解析(三):Elasticsearch 7的安装与配置、Kibana安装
大数据·elasticsearch·jenkins
柳如烟@2 小时前
Docker安装ES :确保 Kibana 正确连接 Elasticsearch
运维·数据库·elasticsearch·docker·容器·kibana