docker-compose安装elasticsearch、kibana、logstash以及ik分词器

复制代码
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.5.0
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
      - ES_JAVA_OPTS=-Xms512m -Xmx512m
      - xpack.security.enabled=false       # 关闭密码(必须)
      - xpack.security.enrollment.enabled=false
      - xpack.security.http.ssl.enabled=false
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es_data:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
    restart: always

  kibana:
    image: docker.elastic.co/kibana/kibana:8.5.0
    container_name: kibana
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200  # 修复这里
      - I18N_LOCALE=zh-CN                              # 中文界面
    ports:
      - 5601:5601
    networks:
      - elastic
    depends_on:
      - elasticsearch
    restart: always

  logstash:
    image: docker.elastic.co/logstash/logstash:8.5.0
    container_name: logstash
    environment:
      - ELASTICSEARCH_HOST=http://elasticsearch:9200
    ports:
      - 5044:5044
    networks:
      - elastic
    depends_on:
      - elasticsearch
    restart: always

volumes:
  es_data:
    driver: local

networks:
  elastic:
    driver: bridge

🔍 第一步:确认 IK 分词器是否安装

在终端执行下面命令,查看已安装的插件列表:

bash 复制代码
docker exec elasticsearch bin/elasticsearch-plugin list
  • 如果输出里没有 analysis-ik,说明插件根本没装上
  • 如果有 analysis-ik,但还是报错,说明插件版本不匹配或安装方式有问题

🛠️ 第二步:一键重装 IK 分词器(推荐)

  1. 先进入容器(用 root 权限)

    bash 复制代码
    docker exec -it --user root elasticsearch bash
  2. 安装 unzip(用来解压)

    bash 复制代码
    apt-get update && apt-get install -y unzip
    apt-get update && apt-get install -y wget unzip
  3. 进入插件目录并下载安装

    bash 复制代码
    cd /usr/share/elasticsearch/plugins
    wget https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.5.0.zip
    unzip elasticsearch-analysis-ik-8.5.0.zip -d ik-analyzer
    rm -rf elasticsearch-analysis-ik-8.5.0.zip
    exit
  4. 重启 ES 容器

    bash 复制代码
    docker restart elasticsearch

✅ 第三步:验证安装是否成功

重启后再执行插件列表命令:

bash 复制代码
docker exec elasticsearch bin/elasticsearch-plugin list

看到 analysis-ik 就说明装好了。

然后在 Kibana 控制台测试:

json 复制代码
POST /_analyze
{
  "analyzer": "ik_smart",
  "text": "我是中国人"
}

如果返回正常分词结果,说明安装成功了 ✅


💡 常见坑说明

  1. 版本必须完全一致:IK 分词器的版本必须和你的 ES 版本(8.5.0)完全一样,不能用 7.x 或 8.4 的版本
  2. 必须重启容器 :安装完插件后,必须 docker restart elasticsearch,否则不会生效

相关推荐
Elastic 中国社区官方博客2 小时前
Elasticsearch:智能搜索 - AI builder,workflow 及 skills
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
Young soul22 小时前
Elasticsearch(v8.5) 常用操作大全
大数据·elasticsearch·jenkins
极客先躯3 小时前
高级java每日一道面试题-2025年11月17日-容器与虚拟化题[Dockerj]-请解释容器和虚拟机的本质区别,从架构层面详细说明。
java·docker·架构
海兰4 小时前
Elastic 基于 Agentic 架构与 MCP 的 Kubernetes 智能可观测性深度解析
elasticsearch·容器·架构·kubernetes
MAVER1CK17 小时前
Install VNC in Docker container
运维·docker·容器
阿正的梦工坊19 小时前
Registry是什么意思?镜像仓库
docker
Elastic 中国社区官方博客19 小时前
在 Discover 中探索来自新的时间序列数据流的指标
大数据·数据库·目标检测·elasticsearch·搜索引擎·数据分析·全文检索
Elasticsearch20 小时前
Elasticsearch:智能搜索 - AI builder 及 skills
elasticsearch
LSL666_21 小时前
3 安装docker
运维·docker·容器