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

相关推荐
小陈运维2 小时前
微WEB文件服务 Docker 部署指南
前端·docker·容器
做运维的阿瑞2 小时前
利用GitHub配置镜像加速,解决 Docker镜像拉取问题
运维·docker·容器·github
小陈运维3 小时前
使用kubeadm初始化IPV4/IPV6集群
linux·docker·云原生·容器·kubernetes
Wang's Blog3 小时前
Java 项目部署之 Docker工具快速入门: 容器命令练习:创建、改文件、重启到删除的完整闭环
java·开发语言·docker
Wx-bishekaifayuan3 小时前
springboot大学生就业平台47691-计算机课程设计、毕业设计
java·spring boot·后端·elasticsearch·课程设计·express·旅游
小锋学长生活大爆炸3 小时前
【工具】在 Android 手机上运行 Docker
android·docker·智能手机
吴声子夜歌4 小时前
Docker入门与实战——实战案例(分布式处理与大数据平台)
大数据·分布式·docker
JavaPub-rodert4 小时前
服务器不能访问 Docker Hub,镜像怎么搬过去?讲透 docker save、load、export、import 与离线镜像分发
运维·服务器·docker
m0_6464299712 小时前
Docker 完整核心知识点总结(超通俗易懂版)
运维·docker·容器
吴声子夜歌15 小时前
Docker入门与实战——实战案例(Web服务与应用)
docker·容器