1.下载镜像

sudo docker pull elasticsearch:7.12.0

2.查看镜像是否下载成功

sudo docker images

在这里插入图片描述

3.选择挂载硬盘创建三个目录,分别对应es的日志,es的配置,和es的插件。并设置目录权限为可读写。

mkdir /home/zx/es_docker
cd es_docker
mkdir logs config plugins data
chmod -R 777 es_docker

4.进入config目录里创建elasticsearch.yml文件,并使用vi命令插入如下内容

http.host: 0.0.0.0
# Uncomment the following lines for a production cluster deployment
#transport.host: 0.0.0.0
#discovery.zen.minimum_master_nodes: 1
#Password config
# 开启密码验证
xpack.security.enabled: true
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
##不添加无法使用head插件连接es,连接时在http:ip:port/?auth_user=elastic&auth_password=密码
http.cors.allow-headers: Content-Type,Accept,Authorization, x-requested-with

由于是yml文件配置,所以host后面的冒号,必须空格后才能输入0.0.0.0。也就是后面的ip地址前面需要空格。

5.开始使用docker run启动容器,具体命令参考为

sudo docker run --privileged=true --name elasticsearch -p 9200:9200  -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms84m -Xmx512m" -v /home/zx/es_docker/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/zx/es_docker/data:/usr/share/elasticsearch/data -v /home/zx/es_docker/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.12.0

命令说明

sudo docker run 
	--privileged=true #授予逻辑卷访问权
	--name elasticsearch 
	-p 9200:9200 #端口映射配置 
	-p 9300:9300 
	-e "discovery.type=single-node" #非集群模式
	-e ES_JAVA_OPTS="-Xms84m -Xmx512m" #内存大小
	-v /home/zx/es_docker/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml #挂载逻辑卷,绑定elasticsearch的配置文件
	-v /home/zx/es_docker/data:/usr/share/elasticsearch/data #挂载逻辑卷,绑定elasticsearch的数据目录
	-v /home/zx/es_docker/plugins:/usr/share/elasticsearch/plugins #挂载逻辑卷,绑定elasticsearch的件目录
	-d elasticsearch:7.12.0

6.可以使用docker ps -a检查es是否正常启动,然后使用docker logs来查看该容器的日志。

sudo docker ps -a

在这里插入图片描述

sudo docker logs elasticsearch

在这里插入图片描述

7.进入容器修改密码

sudo docker exec -it elasticsearch bash
cd /bin
elasticsearch-setup-passwords interactive     #此步为手动设置密码

#以下不是命令
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
 
Enter password for [elastic]:    #在这里设置密码,注意最少六位,下面也一样
Reenter password for [elastic]: 
Passwords do not match.
Try again.
Enter password for [elastic]: 
Reenter password for [elastic]: 
Enter password for [apm_system]: 
Reenter password for [apm_system]: 
Enter password for [kibana]: 
Reenter password for [kibana]: 
Enter password for [logstash_system]: 
Reenter password for [logstash_system]: 
Enter password for [beats_system]: 
Reenter password for [beats_system]: 
Enter password for [remote_monitoring_user]: 
Reenter password for [remote_monitoring_user]: 
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]

8.然后可以直接在浏览器里输入部署es的服务器ip地址和端口号9200,如果出现如下json格式结果,就ok了。

在这里插入图片描述

在这里插入图片描述

9.此时如果想查看es的服务是否启动正常,还可以基于docker来安装es的插件。过程基本一样,先docker去拉取插件,然后docker运行容器

docker pull mobz/elasticsearch-head:5
sudo docker run -d --name es-head -p 9100:9100 docker.io/mobz/elasticsearch-head:5

执行docker命令后,也可以使用docker ps -a来查看是否成功启动。不过更好的方式是和es服务链接上。
因此接下来首先需要修改es的config目录的配置文件elasticsearch.yml,在其后面增加两行语句:

http.cors.enabled: true   
http.cors.allow-origin: "*" 
##不添加无法使用head连接es,连接时在http:ip:port/?auth_user=elastic&auth_password=密码
http.cors.allow-headers: Content-Type,Accept,Authorization, x-requested-with

#主要目的就是允许跨域请求。

#由于修改了配置文件,所以需要重启一下es的服务。直接运行如下语句:
docker restart elasticsearch

10.到此就可以使用网页浏览器来查看es的运行状况了。打开一个浏览器,地址栏上输入安装es插件的服务器ip地址和其端口号

输入
http://ip:port/?auth_user=elastic&auth_password=密码
在这里插入图片描述

11.修该密码

(1) 记得密码时

curl -u elastic -H "Content-Type: application/json" -X POST "localhost:9200/_xpack/security/user/elastic/_password" --data '{"password":"新密码"}'
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐