前置操作 开放端口,例如:29200
创建es相关文件夹,例如:/data/elasticsearch
shellmkdir -p /data/elasticsearch
创建文件、添加脚本并授权可执行权限
elasticsearch.sh
文件
shellvim /data/elasticsearch/elasticsearch.sh
# 切换到英文输入法,按i键或insert键进入编辑模式
shell#!/bin/bash
# 停止旧容器运行
docker stop elasticsearch
# 删除旧容器
docker rm elasticsearch
docker run -itd \
--privileged=true \
-p 29200:9200 \
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" \
-e "TAKE_FILE_OWNERSHIP=true" \
-e "discovery.type=single-node" \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
--name elasticsearch \
--restart=always \
elasticsearch:7.17.5
# 将容器配置文件拷贝到宿主机
docker cp elasticsearch:/usr/share/elasticsearch/config /data/elasticsearch
exit 0
:wq
,最后按Enter键
退出shellchmod -R 770 /data/elasticsearch/elasticsearch.sh
执行脚本
shell/data/elasticsearch/elasticsearch.sh
注:
- -e ES_JAVA_OPTS="-Xms256m -Xmx256m"表示设置运行es的jvm初始内存大小为256M,最大运行内存为512M
- -e "TAKE_FILE_OWNERSHIP=true"表示访问组1000和访问用户1000,相当于:
chown -R 1000:1000 文件夹或文件
- -e "discovery.type=single-node"表示单节点部署
- 此时没有配置文件相关映射
进入文件夹/data/elasticsearch/config
修改文件elasticsearch.yml
,并添加以下内容
yaml# 新增配置
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
再次修改elasticsearch.sh
文件,内容如下,并执行文件
shell#!/bin/bash
# 停止旧容器运行
docker stop elasticsearch
# 删除旧容器
docker rm elasticsearch
docker run -itd \
--privileged=true \
-p 29200:9200 \
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" \
-e "TAKE_FILE_OWNERSHIP=true" \
-e "discovery.type=single-node" \
-v /data/elasticsearch/config:/usr/share/elasticsearch/config \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
--name elasticsearch \
--restart=always \
elasticsearch:7.17.5
exit 0
进入容器
shelldocker exec -it elasticsearch bash
在容器内部执行以下命令,为elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user六个账号设置密码
shell./bin/elasticsearch-setup-passwords interactive
注:执行完命令根据提示为每个账号输入并再次确认密码
在容器内部执行下面命令退出容器
shellexit