一.拉取镜像
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