方式1:
# 1.创建es 相关挂载目录
mkdir -p /home/mqq/elasticsearch/elasticsearch_docker_map_path/config/
mkdir -p /home/mqq/elasticsearch/elasticsearch_docker_map_path/data
mkdir -p /home/mqq/elasticsearch/elasticsearch_docker_map_path/plugins
chmod -R 777 /home/mqq/elasticsearch/
# 2. /home/mqq/elasticsearch/elasticsearch_docker_map_path/config/ 下创建文件
vim elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 允许远程访问
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: truevim jvm.options
-Xms16g
-Xmx16g-XX:+UseG1GC
## JVM temporary directory
-Djava.io.tmpdir=${ES_TMPDIR}20-:--add-modules=jdk.incubator.vector
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
-XX:HeapDumpPath=data
-XX:ErrorFile=logs/hs_err_pid%p.log
-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,level,pid,tags:filecount=32,filesize=64m
# 3. 设置目录权限,否则会报错
chmod +x elasticsearch.yml
# 设置为目录 777 权限
chmod -R 777 /mydata/elasticsearch
docker run -d --name elasticsearch85 -p 0.0.0.0:9702:9200 -p 0.0.0.0:9703:9300 -v /home/mqq/elasticsearch/elasticsearch_docker_map_path/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/mqq/elasticsearch/elasticsearch_docker_map_path/data:/usr/share/elasticsearch/data -v /home/mqq/elasticsearch/elasticsearch_docker_map_path/plugins:/usr/share/elasticsearch/plugins -e "discovery.type=single-node" -e "xpack.security.enabled=true" -e "ELASTIC_PASSWORD=yourpasswd" --restart=unless-stopped docker.elastic.co/elasticsearch/elasticsearch:8.5.1
这种方式生成的所有用户密码都一样,适用于快速部署测试验证。
方式2:生产部署
前期准备:
# 1.创建es 相关挂载目录
mkdir -p /home/mqq/elasticsearch/elasticsearch_docker_map_path/config/
mkdir -p /home/mqq/elasticsearch/elasticsearch_docker_map_path/data
mkdir -p /home/mqq/elasticsearch/elasticsearch_docker_map_path/plugins
chmod -R 777 /home/mqq/elasticsearch/
# 2. /home/mqq/elasticsearch/elasticsearch_docker_map_path/config/ 下创建文件
vim elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 允许远程访问
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
# 3. 设置目录权限,否则会报错
chmod +x elasticsearch.yml
# 设置为目录 777 权限
chmod -R 777 /mydata/elasticsearch
对应的docker_compose.yml文件配置如下:
version: "3"
networks:
elasticsearch8:
external: false
services:
elasticsearch:
image: elasticsearch:8.5.1
container_name: elasticsearch851
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms1024m -Xmx1024m
ports:
- 9201:9200
- 9301:9300
networks:
- elasticsearch8
volumes:
- /home/mqq/elasticsearch/elasticsearch_docker_map_path/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- /home/mqq/elasticsearch/elasticsearch_docker_map_path/data:/usr/share/elasticsearch/data
- /home/mqq/elasticsearch/elasticsearch_docker_map_path/plugins:/usr/share/elasticsearch/plugins
启动容器:
sudo docker-compose -f docker_compose.yml up -d
# 配置访问es密码步骤
docker exec -it 容器id /bin/bash
# 配置密码
./bin/elasticsearch-setup-passwords interactive