docker安装elasticsearch

一、下载和准备工作
(1)拉取镜像

//拉取elasticsearch镜像
docker pull elasticsearch:8.19.20
//拉取kibana镜像
//Kibana 是 Elasticsearch(ES)的图形化操作界面
//Kibana和elasticsearch版本要相同
docker pull kibana:8.19.20

(2)创建目录

 mkdir -p /data/elasticsearch/{data,plugins,log}
 //赋予权限,启动失败,可以查看es的id修改,
 //嫌麻烦直接执行2,权限改为777
 sudo chown -R 1000:1000 /data/elasticsearch/data /data/elasticsearch/log /data/elasticsearch/plugins
 sudo chmod -R 755 /data/elasticsearch/{data,log,plugins}

二、docker启动es
(1)创建网络

//创建网络
docker network create es-net

启动es

docker run -d \
  --name elasticsearch \
  --restart=unless-stopped \
  --network es-net \
  -p 9200:9200 \
  -p 9300:9300 \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms1g -Xmx1g" \
  -e "xpack.security.enabled=false" \
  -v /data/elasticsearch/data:/usr/share/elasticsearch/data \
  -v /data/elasticsearch/log:/usr/share/elasticsearch/log \
  -v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
  elasticsearch:8.19.20

测试在浏览器输入http://ip:9200/,有返回es相关信息就可以

{
  "name" : "12b819af6d86",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "m0bwX3WuSraVzROBdlIS1A",
  "version" : {
    "number" : "8.19.20",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "91f5381ece296ddc32b554f997269478b9224af8",
    "build_date" : "2026-08-05T22:14:37.858379356Z",
    "build_snapshot" : false,
    "lucene_version" : "9.12.2",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

(2)启动

//修改为中文
docker run -d \
  --name kibana \
  --restart=unless-stopped \
  --network es-net \
  -p 5601:5601 \
  -e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" \
  -e "I18N_LOCALE=zh-CN" \
  kibana:8.19.20

测试浏览器输入http://ip:5601,可以看到界面就可以了。
三、使用docker compose安装
创建文件

//创建目录
mkdir -p /compose/elasticsearch
//创建配置文件
touch /compose/elasticsearc/compose.yaml

在/compose/elasticsearc/compose.yaml中编写

version: '3.8'

services:
  # Elasticsearch 服务
  elasticsearch:
    image: elasticsearch:8.19.20
    container_name: elasticsearch
    restart: unless-stopped
    environment:
      - discovery.type=single-node
      - ES_JAVA_OPTS=-Xms1g -Xmx1g
      - xpack.security.enabled=false
    ports:
      - "9200:9200"
      - "9300:9300"
    volumes:
      - /data/elasticsearch/data:/usr/share/elasticsearch/data
      - /data/elasticsearch/log:/usr/share/elasticsearch/log
      - /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins
    networks:
      - es-net

  # Kibana 服务
  kibana:
    image: kibana:8.19.20
    container_name: kibana
    restart: unless-stopped
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
      - I18N_LOCALE=zh-CN
    ports:
      - "5601:5601"
    networks:
      - es-net
    # 确保 Kibana 在 Elasticsearch 之后启动
    depends_on:
      - elasticsearch

# 定义网络
networks:
  es-net:
    driver: bridge

# 定义网络
networks:
  es-net:
    driver: bridge

运行

//进入目录
 cd /compose/elasticsearch
 //运行
 docker compose up -d

四、添加分词器

docker exec -it elasticsearch /bin/bash
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.19.20/elasticsearch-analysis-ik-8.19.20.zip

下载失败可以https://release.infinilabs.com/analysis-ik/stable/去下载对应的包,复制到插件目录下
在这里插入图片描述

//将 elasticsearch-analysis-ik-8.19.20.zip 压缩包的内容,解压到当前目录下的 analysis-ik 文件夹中
//解压完成后,删除原始的 .zip 压缩包,保持目录整洁
docker run --rm -v /data/elasticsearch/plugins:/plugins alpine \
  sh -c "apk add unzip && cd /plugins && unzip -d analysis-ik elasticsearch-analysis-ik-8.19.20.zip && rm elasticsearch-analysis-ik-8.19.20.zip"

检验是否安装成功

docker exec -it elasticsearch /bin/bash -c "elasticsearch-plugin list"

更多推荐