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

相关推荐
fangdengfu1239 小时前
ES分析系统各个服务日志占用量
java·前端·elasticsearch
杨浦老苏10 小时前
开源多用户图书追踪系统LibrisLog
docker·群晖·收藏管理
赵渝强老师11 小时前
【赵渝强老师】Kubernetes(K8s)中的金丝雀升级
linux·docker·云原生·容器·kubernetes
兄台の请冷静12 小时前
Linux 安装es
linux·elasticsearch·jenkins
我叫张小白。13 小时前
CentOS 7 安装 Docker并配置镜像加速(完整指南)
linux·docker·centos
原来是猿14 小时前
Docker 【 技术架构(1)】
docker·容器·架构
木雷坞15 小时前
Qdrant Docker 部署教程:数据卷、API Key 和集合初始化
运维·docker·容器·知识图谱
梦梦代码精15 小时前
为什么这个开源的AI平台会火?有点东西。。。
人工智能·算法·机器学习·docker·开源
Lv_沐曦15 小时前
银河麒麟桌面版安装、多屏配置、触摸校准
运维·docker·samba·vsftpd·银河麒麟·触控校准·多屏配置
浩风祭月17 小时前
一个开发者的“看门狗”:我把服务器监控从被动告警变成了主动预防
后端·docker