Docker Compose 本地环境搭建:elasticsearch

Docker Compose 本地环境搭建:elasticsearch

  • [🔗 前言:Docker Compose 本地环境搭建相关文章](#🔗 前言:Docker Compose 本地环境搭建相关文章)
  • [🐳 Docker Compose 本地环境搭建:elasticsearch](#🐳 Docker Compose 本地环境搭建:elasticsearch)
    • [📚 目录结构设计](#📚 目录结构设计)
    • [📄 docker-compose.yml](#📄 docker-compose.yml)
    • [🚀 启动方式](#🚀 启动方式)
    • [✂️ IK 分词器安装](#✂️ IK 分词器安装)
    • [🌐 访问测试](#🌐 访问测试)

🔗 前言:Docker Compose 本地环境搭建相关文章


🐳 Docker Compose 本地环境搭建:elasticsearch


📚 目录结构设计

推荐使用如下结构:

bash 复制代码
infra/
├── .env

├── mysql/
│   └── docker-compose.yml

├── redis/
│   └── docker-compose.yml

├── elasticsearch/
│   └── docker-compose.yml

├── skywalking/
│   └── docker-compose.yml

├── nacos/
│   └── docker-compose.yml

📄 docker-compose.yml

bash 复制代码
# =========================================================
# 用于构建环境:Elasticsearch
# 宿主机挂载目录、端口、密码、版本号、环境后缀均通过 .env 文件管理
# =========================================================

###########################################################
# 网络配置
###########################################################
networks:
  env_network: # 内部网络标识固定
    driver: bridge
    name: ${NETWORK_NAME}        # Docker 实际网络名动态生成
    ipam:
      config:
        - subnet: ${NETWORK_SUBNET}  # 子网从 .env 获取

###########################################################
# 卷(Volume)配置
###########################################################
volumes:
  # Elasticsearch
  es_data:
    driver: local
    driver_opts:
      type: none
      device: ${HOST_VOLUME}/${ENV}/ElasticSearch8/data
      o: bind
  es_logs:
    driver: local
    driver_opts:
      type: none
      device: ${HOST_VOLUME}/${ENV}/ElasticSearch8/logs
      o: bind

###########################################################
# 服务定义
###########################################################
services:
  # Elasticsearch
  elasticsearch:
    image: elasticsearch:${ES_VERSION}
    container_name: elasticsearch_${ES_VERSION}_${ENV}
    networks:
      - env_network
    ports:
      - "${ES_PORT_HTTP}:9200"
      - "${ES_PORT_TRANSPORT}:9300"
    environment:
      discovery.type: single-node
      ELASTIC_PASSWORD: ${ES_PASSWORD}
      xpack.security.enabled: "true"
      # 防止再被 flood-stage 锁死
      cluster.routing.allocation.disk.watermark.low: "90%"
      cluster.routing.allocation.disk.watermark.high: "95%"
      cluster.routing.allocation.disk.watermark.flood_stage: "97%"
    volumes:
      - es_data:/usr/share/elasticsearch/data
      - es_logs:/usr/share/elasticsearch/logs
    healthcheck:
      test:
        [
          "CMD-SHELL",
          "curl -sf -u elastic:${ES_PASSWORD} http://localhost:9200 >/dev/null || exit 1"
        ]
      # 两次健康检查之间的间隔
      interval: 10s
      # 单次健康检查的最大执行时间
      timeout: 5s
      # 允许连续失败多少次
      retries: 30
      # 启动宽限期,在这段时间内,健康检查失败不会被算作失败,成功直接 healthy
      start_period: 300s
    restart: unless-stopped
    labels:
      env: ${ENV}
      version: ${ES_VERSION}
      service: elasticsearch_${ENV}

🚀 启动方式

在 .env 同级目录下执行

bash 复制代码
docker compose --env-file .env -f elasticsearch/docker-compose.yml up -d
  • -d 表示 后台运行
  • Compose 会:
    • 自动读取 .env 文件里的变量
    • 根据 docker-compose.yml 配置创建网络、卷和容器
    • 容器名、端口、挂载目录都会根据 .env 替换

✂️ IK 分词器安装

进入容器安装插件(避免重启重复安装):

bash 复制代码
docker exec -it elasticsearch_8.18.8_dev bash

执行安装 IK分词器 命令

bash 复制代码
elasticsearch-plugin install --batch https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.18.8.zip

🌐 访问测试

相关推荐
Elastic 中国社区官方博客4 小时前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎
方便面不加香菜4 小时前
Docker Volume -- 管理卷Volume详解
运维·docker·容器
江湖有缘5 小时前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
莫晓燚5 小时前
mall 电商项目完整部署---实战
linux·运维·docker·容器
Elasticsearch6 小时前
Kibana 中的人工智能连接器:你的 agent 可调用的 90 多个数据源
elasticsearch
RuoyiOffice18 小时前
KubeSphere 容器云实践:从管理 K8s 到建设企业 PaaS,还需要哪些能力
spring boot·kubernetes·kubesphere·jenkins·paas·微服务部署·ruoyi office
瑞克-桑切斯1 天前
ERP 企业生产管理系统部署手册
运维·docker·云原生·容器·eureka
瑞克-桑切斯1 天前
docker mail商城
运维·docker·容器
java_logo1 天前
Docker 部署 ReMe:轻松搭建 AI Agent 记忆管理平台
人工智能·docker·容器·ai agent·轩辕镜像·reme·agentscope-ai
不庸.1 天前
WPScan 实战入门:从 Docker 靶场到弱密码爆破
运维·安全·web安全·docker·容器·安全性测试·wpscan