Docker简单部署ElasticSearch集群并用ElasticSearch-Head访问

一.拉取镜像

docker pull elasticsearch:7.3.2

二.创建数据挂载目录,以及配置ElasticSearch集群配置文件,调高JVM线程数限制数量

1.创建数据文件挂载目录,并开放通信端口
[root@localhost soft]# pwd
/home/soft
[root@localhost soft]# mkdir -p ES/config
[root@localhost soft]# cd  ES 
[root@localhost ES]# mkdir data1
[root@localhost ES]# mkdir data2
[root@localhost ES]# mkdir data3
[root@localhost ES]# cd ES/config/
[root@localhost ES]# firewall-cmd --add-port=9300/tcp
success
[root@localhost ES]# firewall-cmd --add-port=9301/tcp
success
[root@localhost ES]# firewall-cmd --add-port=9302/tcp
success
# 改变创建的文件夹权限,不设置的话,集群启动一会儿就退出了
chmod 777 data1 data2 data3
2.创建ElasticSearch配置文件
vim es1.yml

文件内容如下:

cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 192.168.1.133
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.1.133:9300","192.168.1.133:9301","192.168.1.133:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: es-node1
vim es2.yml 

文件内容如下:

cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 192.168.1.133
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.1.133:9300","192.168.1.133:9301","192.168.1.133:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: es-node1
vim es3.yml

文件内容如下:

cluster.name: elasticsearch-cluster
node.name: es-node3
network.bind_host: 0.0.0.0
network.publish_host: 192.168.1.133
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.1.133:9300","192.168.1.133:9301","192.168.1.133:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: es-node1
  • cluster.initial_master_nodes指定初始节点,否则会报错:master_not_discovered_exception
  • docker logs -f -t --since="2020-12-14" --tail=100 容器id查看日志,可以看到:waiting for elected master node
3.调高JVM线程数限制数量
vim /etc/sysctl.conf

加入如下内容

vm.max_map_count=262144 

启用配置

sysctl -p

三.启动ElasticSearch集群容器

 docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /home/soft/ES/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/soft/ES/data1:/usr/share/elasticsearch/data --name ES01 elasticsearch:7.3.2
 
 docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301 -v /home/soft/ES/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/soft/ES/data2:/usr/share/elasticsearch/data --name ES02 elasticsearch:7.3.2

 docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9202:9202 -p 9302:9302 -v /home/soft/ES/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/soft/ES/data3:/usr/share/elasticsearch/data --name ES03 elasticsearch:7.3.2

四.验证是否搭建成功

1.在浏览器地址栏访问http://192.168.1.133:9200/_cat/nodes?pretty查看节点状态

在这里插入图片描述

2.使用elasticsearch-head前端框架

1.拉取镜像

docker pull mobz/elasticsearch-head:5

2.启动容器

docker run -d -p 9100:9100 --name es-manager  mobz/elasticsearch-head:5

3.浏览器访问http://192.168.1.133:9100/
在这里插入图片描述

五.其他配置

此时查询不到数据,报406错误,提示Content-Type header [application/x-www-form-urlencoded] is not supported
在这里插入图片描述

1.进入容器
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                                                NAMES
7b4786ea9c2a        elasticsearch:7.2.0         "/usr/local/bin/dock…"   23 hours ago        Up 23 hours         9200/tcp, 0.0.0.0:9202->9202/tcp, 9300/tcp, 0.0.0.0:9302->9302/tcp   ES03
923741870ac7        elasticsearch:7.2.0         "/usr/local/bin/dock…"   23 hours ago        Up 23 hours         9200/tcp, 0.0.0.0:9201->9201/tcp, 9300/tcp, 0.0.0.0:9301->9301/tcp   ES02
1574cd981313        elasticsearch:7.2.0         "/usr/local/bin/dock…"   23 hours ago        Up 23 hours         0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp                       ES01
0bfce8005872        mobz/elasticsearch-head:5   "/bin/sh -c 'grunt s…"   27 hours ago        Up 27 hours         0.0.0.0:9100->9100/tcp                                               es_admin
[root@localhost ~]# docker exec -it 0bfce8005872 /bin/bash
2.安装vim命令
apt-get install vim
# 如果提示 Unable to locate package vim,则先输入如下命令,再输入apt-get install vim
apt-get update
3.进入head插件安装目录
root@0bfce8005872:/usr/src/app# vim _site/vendor.js

修改如下两个地方(按Esc进入命令模式后,输入:n,按回车键跳转到文件第n行。):

# 1.6886行 contentType: "application/x-www-form-urlencoded 修改为 
contentType:"application/json;charset=UTF-8" 
# 2. 7573行 var inspectData = s.contentType === "application/x-www-form-urlencoded" && 修改为
var inspectData = s.contentType === "application/json;charset=UTF-8" &&

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.退出并重启容器
root@0bfce8005872:/usr/src/app# exit
exit
[root@localhost ~]# docker restart 0bfce8005872

参考资料

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值