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

相关推荐
小兔崽子去哪了11 小时前
Docker 删除镜像后磁盘空间没有释放?
后端·docker·容器
IT新视界12 小时前
Elasticsearch信创国产化替代
大数据·elasticsearch·搜索引擎
Zhu75813 小时前
在Docker环境部署ApacheGuacamole,对接PG数据库
数据库·docker·容器
Elasticsearch14 小时前
用 Elasticsearch 的 RRF 融合检索,把矿物鉴定准确率从 36% 拉到 92%
elasticsearch
少陽君14 小时前
Docker 部署 Loki + Promtail + Grafana 日志监控栈
docker·容器·grafana
Elasticsearch14 小时前
景枢:基于 Elastic AI Agent Builder 的多景区购票智能运维中枢技术解析
elasticsearch
独自归家的兔14 小时前
2026年7月2日 Docker 容器化部署 PaddleOCR-VL 实战(OpenAI 协议兼容 HTTP 调用)
运维·docker·容器
胖胖雕15 小时前
利用阿里云与docker部署Certimate
阿里云·docker·云计算
会飞的土拨鼠呀16 小时前
Docker 容器维护手册
docker·容器·eureka
嗝屁小孩纸16 小时前
Maven版本升级&Nexus推送极简执行步骤
java·elasticsearch·maven