1. 下载镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.6.2

2. 启动容器

docker run --name elaticsearch -p 9200:9200 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms1g -Xmx8g" docker.elastic.co/elasticsearch/elasticsearch:8.6.2

3. 复制出配置文件、插件、数据目录

# 创立一个目录, 用来寄存elasticsearch配置和数据mkdir /data/elasticsearchcd /data/elasticsearch# 复制配置文件目录docker cp elasticsearch:/usr/share/elasticsearch/config /data/elasticsearch/config# 复制插件目录docker cp elasticsearch:/usr/share/elasticsearch/plugins /data/elasticsearch/plugins# 批改文件权限, 不然Docker容器无奈写数据cd /datachgrp -R 1000 elasticsearchchown -R 1000 elasticsearch

4. 重启容器

# 先移除容器docker stop elasticsearchdocker rm elasticsearch# 再启动一个新的(须要先配置docker-compose.yml文件)docker-compose up

docker-compose.yml配置如下

version: "3.3"services:  elasticsearch:    container_name: elasticsearch    image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2    restart: always    # 映射目录到宿主机    volumes:      - /data/elasticsearch/config:/usr/share/elasticsearch/config      - /data/elasticsearch/data:/usr/share/elasticsearch/data      - /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins    ports:      - 9200:9200      - 9300:9300    environment:      # 指定单节点启动      - discovery.type=single-node      - "ES_JAVA_OPTS=-Xms2g -Xmx8g"      # 开启内存锁定      - bootstrap.memory_lock=true      # 不开启权限验证      - xpack.security.enabled=false#    mem_limit: ${MEM_LIMIT}    ulimits:      # 勾销内存相干限度 用于开启内存锁定      memlock:        soft: -1        hard: -1

如需装置IK分词器, 下载解压到/data/elasticsearch/plugins, 重启ES即可