Docker安装最新版ES8.4.1

发布于:2023-01-01 ⋅ 阅读:(668) ⋅ 点赞:(0)

最近在看谷粒商城视频,昨天用docker搭建最新的es8.4.1遇到了许多问题,记录下。

1.拉取最新ES镜像

docker pull elasticsearch:8.4.1

2.创建宿主机文件夹与docker容器文件夹映射关系,这里注意,博主当时看谷粒商城视频搭建,当时创建了三个目录分别是config,data,plugins三个目录,然后运行镜像时,使用了以下命令:

创建目录及配置文件命令:

mkdir -p /opt/elasticsearch/config
mkdir -p /opt/elasticsearch/data
mkdir -p /opt/elasticsearch/plugins
echo "http.host: 0.0.0.0" >> /opt/elasticsearch/config/elasticsearch.yml

运行镜像命令: 

docker run --name es02 -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /opt/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /opt/elasticsearch/data:/usr/share/elasticsearch/data \
-v /opt/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:8.4.1

运行后访问发现需要用户名和密码 

 

 这个和想象中的不一样呀?不应该是直接返回一个json对象么?后面查看官方文档后发现,新版es运行会自动生成elasticsearch.yml,而且采用的是https方式进行接口访问,在首次运行镜像时会自动生成用户名和密码!!!所以让我们换一种姿势吧!

按官方的命令:

1、创建为es和kibana创建一个docker网络

docker network create elastic

 2、去掉config和data文件夹的映射命令,因为该命令会覆盖自动生成的配置文件和数据,导致无法生成用户名和密码,并且这里没有采用后台运行的方式,因为首次运行会生成用户名,密码等信息,采用后台运行还要去查看日志操作太麻烦,还是在首次运行复制了用户名密码等信息后,以后再采用后台启动的方式不迟

docker run --name es02 --net elastic -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e CLI_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /opt/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-it elasticsearch:8.4.1

运行后可以看到后台会打印出密码和token(kibana登录时需要用到)信息

 此时我们通过浏览器访问https://192.168.213.121:9200(这里的ip是博主虚拟机ip,请改为自己机器的ip)即可看到登录页面

选择高级,继续前往 即可看到登录页

 用户名:elastic,密码:复制控制台的密码信息,即可登录成功 

 

 并且我们可以通过重置密码命令来自定义密码 

docker exec -it es02 bash
cd /usr/share/elasticsearch/
bin/elasticsearch-reset-password -u elastic -i

 这样我们就可以改成自己想要的密码啦~

接下来继续安装Kibana(要和es版本保持一致)

docker pull kibana:8.4.1
docker run --name kb02 --net elastic -p 5601:5601 kibana:8.4.1

 运行起来后你将看到以下内容:

在浏览器输入192.168.213.121:5601,输入token(上文中第一次运行es打印的信息)点击ConfigureElastic再输入验证码,等待系统完成配置后,输入es账号和自定义的密码,即可登录成功!

 

 

 

 


网站公告

今日签到

点亮在社区的每一天
去签到