第一步:创建宿主文件夹,用于挂载相关文件
建议给每个文件夹授权:chmod 777 /sdyy/app/es-9201/config
chmod 777 elastic-stack-ca.p12
第二步:先创建一个实例
docker run --name escs -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 es:7.16.2
#--name表示镜像启动后的容器名称
#-d: 后台运行容器,并返回容器ID;
#-e: 指定容器内的环境变量
#-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
第三步:进入容器
docker exec -it escs bash
第四步:为 TLS 生成一个证书
./bin/elasticsearch-certutil ca
如上图,直接回车接受默认的文件名 elastic-stack-ca.p12
然后出现输入密码的提示,输入密码回车,退出容器
第五步:将文件复制到宿主机(切换到接下来部署集群时外挂的config文件下执行下面命令)
docker cp escs:/usr/share/elasticsearch/elastic-stack-ca.p12 .
docker cp escs:/usr/share/elasticsearch/elasticsearch.yml .
docker cp escs:/usr/share/elasticsearch/jvm.options .
三条命令执行完后,可以将临时的escs容器删掉了。
第六步:修改配置文件elasticsearch.yml(3节点,修改相应的ip和端口即可)
第七步:运行容器
docker run --name es-9201 --net=host -v /sdyy/app/es-9201/config/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /sdyy/app/es-9201/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /sdyy/app/es-9201/data:/usr/share/elasticsearch/data -v /sdyy/app/es-9201/logs:/usr/share/elasticsearch/logs -v /sdyy/app/es-9201/config/elastic-stack-ca.p12:/usr/share/elasticsearch/config/elastic-stack-ca.p12 -d es:7.16.2
第八步:如果在生成elastic-stack-ca.p12文件时录入了密码,需要进入容器bin执行以下命令以将密码存储在Elasticsearch密钥库中,提示录入的密码,即创建elastic-stack-ca.p12时录入的密码
(建议在容器config文件中执行 :chmod 777 elastic-stack-ca.p12)
./elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password ./elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
如果以上命令,其中有命令没执行完,可以重启容器,从中断的命令继续执行



