#解决elasticsearch本地挂载权限问题#
1、创建数据目录
mkdir /data/elasticsearch/data
mkdir /data/elasticsearch/config
mkdir /data/elasticsearch/logs
mkdir /data/elasticsearch/plugins
2、分配挂载目录权限
docker run \
--name elasticsearch \
--privileged=true \
--user root \
--restart=always \
-p 9200:9200 \
-m 2g \
-e discovery.type=single-node \
-e cluster.name=elasticsearch \
-e node.name=es01 \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /data/elasticsearch/config:/usr/share/elasticsearch/local-config \
-v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \
-d docker.elastic.co/elasticsearch/elasticsearch:8.12.0 \
sh -c "chown -R elasticsearch:root data local-config logs plugins & sleep 3600"
3、保存自动生成的配置文件
docker stop elasticsearch
docker rm elasticsearch
docker run \
--name elasticsearch \
--privileged=true \
--restart=always \
-p 9200:9200 \
-m 2g \
-e discovery.type=single-node \
-e cluster.name=elasticsearch \
-e node.name=es01 \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /data/elasticsearch/config:/usr/share/elasticsearch/local-config \
-v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \
-d docker.elastic.co/elasticsearch/elasticsearch:8.12.0
sleep 30
docker exec -it elasticsearch bash -c "cp -r /usr/share/elasticsearch/config/* /usr/share/elasticsearch/local-config"
4、启动elasticsearch,配置elastic密码和生成kibana tokten
docker stop elasticsearch
docker rm elasticsearch
docker run \
--name elasticsearch \
--privileged=true \
--restart=always \
-p 9200:9200 \
-m 2g \
-e discovery.type=single-node \
-e cluster.name=elasticsearch \
-e node.name=es01 \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /data/elasticsearch/config:/usr/share/elasticsearch/config \
-v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \
-d docker.elastic.co/elasticsearch/elasticsearch:8.12.0
#配置elastic密码
docker exec -it elasticsearch bash -c "bin/elasticsearch-reset-password -u elastic"
#生成kibana token
docker exec -it elasticsearch bash -c "bin/elasticsearch-create-enrollment-token --scope kibana" > kibana.token
5、访问和验证elasticsearch
curl -k -u elastic:${生成的密码} https://${ip}:9200
注:${IP},可以为127.0.0.1、localhost、主机IP