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,否则不会生效

相关推荐
童槿顏丶8 小时前
docker自动化部署脚本
docker·eureka·自动化
Elasticsearch9 小时前
Elasticsearch:使用 AI Agent 来创建 workflows
elasticsearch
gll77312 小时前
RAG 检索层实战:Redis 缓存 + ES 混合检索 + BGE-Rerank 重排全链路落地与踩坑
elasticsearch
GlueNa2SiO312 小时前
06-Docker存储与数据持久化
笔记·学习·docker
一位正在转型AI全栈的前端工程师13 小时前
前端转全栈:从 502 到 200,我的第一个 Docker+Nginx+Node.js 项目
docker·容器
Elasticsearch13 小时前
ES 存日志很贵?我用 ES 9.5 把日志从 4.5G 压到 412M 压缩比11.2倍,日志硬扫每秒128万行!
elasticsearch
jason_renyu13 小时前
Linux Docker 服务管理与排查实战指南(新手速查版)
linux·docker·新手docker学习·docker日志查询·docker服务管理
童槿顏丶14 小时前
Jenkins部署(Docker)
java·docker·jenkins
维核科技14 小时前
大模型私有化部署:Docker与Kubernetes实战避坑
docker·容器·kubernetes