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即可