【Java日常运维】关于docker部署安装es教程参考

在linux系统(centOS7)中部署elasticsearch:7.9.3插件(全文搜索引擎服务器):
1、如果网络环境可以的话,直接利用docker进行拉取
Docker pull elasticsearch:7.9.3
2、查看下载的镜像:docker images;
3、创建虚拟网络:docker network create es-net
4、创建挂载目录:
配置文件夹挂载:
mkdir -p /usr/local/elasticsearch/es-config
mkdir -p /usr/local/elasticsearch/es-data
mkdir -p /usr/local/elasticsearch/es-logs

插件文件夹挂载:
mkdir -p /usr/local/elasticsearch/es-plugins
5、将数据卷文件夹创建好之后,在es-config文件夹下创建elasticsearch.yml 文件,进入到es-config文件夹下,输入命令:touch elasticsearch.yml (里面的内容如下:
http.host: 0.0.0.0
network.host: 0.0.0.0
discovery.seed_hosts: [“0.0.0.0”, “[::1]”]
【该配置可以不需要,直接容器实例里面去修改就行】
6、需要打开挂载目录es-data和es-logs的读写权限,否则es没有权限操作挂载目录,无法绑定节点,命令如下:chmod 777 /usr/local/elasticsearch/es-data
chmod 777 /usr/local/elasticsearch/es-data
7、生成并启动容器:
docker run --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS=“-Xms256m -Xmx256m” -e “discovery.type=single-node” -v /usr/local/elasticsearch/data:/usr/share/elasticsearch/data -v /usr/local/elasticsearch/plugins:/usr/share/elasticsearch/plugins -v /usr/local/elasticsearch/logs:/usr/share/elasticsearch/logs --privileged=true --network es-net -d es:7.9.3

8、查看容器实例:docker ps 如需远程访问,可能还得开启相应端口。
9300端口: ES节点之间通讯使用(譬如:集群节点)
9200端口: ES节点 和 外部 通讯使用
9、重启命令:docker restart es
部署成功结果截图:
结果如图
10、至此elasticsearch已经部署完毕,可以使用,但在企业中一般给elasticsearch设置账密,
如果docker安装ES时,已经加上了 -v 的参数,通过挂载卷的方式把ES容器里的配置文件映射到宿主机了的话,那你也可以不进入容器编辑配置文件,直接编辑映射到宿主机里的那个配置文件也行。即/usr/local/elasticsearch/es-config下的elasticsearch.yml文件
11、在/usr/local/elasticsearch/es-config/elasticsearch.yml配置文件中加入如下内容:
http.cors.enabled: true
http.cors.allow-origin: “*”
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

注意:
如果没有挂载卷的话,则需要进入容器实例里面去修改一下elasticsearch.yml的配置文件内容:docker exec -it /bin/bash【bash】,进入到文件夹:usr/share/elasticsearch下查找elasticsearch.yml文件,并且加入下面的属性内容:
http.cors.enabled: true
http.cors.allow-origin: “*”
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

加入完之后,保存退出,重启es容器。
12、上一步重启ES容器后,再次进入容器,输入命令:docker exec -it es(容器实例名) /bin/bash
13、进入到容器内部之后,执行以下命令进入密码设置阶段:
./bin/elasticsearch-setup-passwords interactive
敲回车之后,会出现如下界面:
如图
上边英文大概的意思是:你如果确定开启密码的话,需要设置以下六种账户的密码
elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user
需要设置的账户密码比较多,所以这个过程有点漫长,耐心点设置就行了
输入y开始设置

14、加入之后,退出当前容器(命令exit),然后去需要重启一下es,命令如下:docker restart es。
15、再次输入远程访问地址,出现登录界面,需要账号才能登录,账号是默认为:elastic,密码是自己定义设置。

注:如果出现如图片的这个问题:
在这里插入图片描述

则需要在es的config文件中的elasticsearch.yml 配置文件中加入以下配置:
cluster.routing.allocation.disk.threshold_enabled: true
cluster.routing.allocation.disk.watermark.flood_stage: 4gb
cluster.routing.allocation.disk.watermark.low: 4gb
cluster.routing.allocation.disk.watermark.high: 4gb

名词定义:
环境变量 说明
node.name 节点在集群中的唯一名称
node.master 可已被选举为主节点
network.host 当前节点的地址
discovery.seed_hosts 集群中其他节点的地址列表
cluster.initial_master_nodes 候选的主节点地址列表
cluster.name 集群名
ES_JAVA_OPTS java虚拟机参数

重命名镜像的方法:
docker tag [镜像id] [新镜像名称]:[新镜像标签]
譬如:docker tag 1ab13f928dc8 es:7.9.3

Docker安装Kibana:

  1. docker pull kibana:7.9.3
  2. docker run -d --name kibana --net es-net -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://es:9200 --restart=always kibana:7.9.3
  3. docker ps 查看容器实例是否启动成功

注意:
–network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中。

-e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch(注意此处的es指的是容器的名字,即容器名:端口)

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值