docker搭建ES群集

本次实验在阿里云上操作
Centos 7.8操作系统
实验如下:

拉去镜像:
docker pull elasticsearch:7.6.2

创建ES本地挂载目录:
mkdir /docker/ES
mkdir /docker/ES/es1 //存放数据
mkdir /docker/ES/es2
mkdir /docker/ES/es3
mkdir /docker/ES/config //配置文件
mkdir /docker/ES/logs //日志目录
mkdir /docker/ES/logs/es1
mkdir /docker/ES/logs/es2
mkdir /docker/ES/logs/es3

配置ES配置文件:
cd /docker/ES/config/
touch es1.yml es2.yml es3.yml

vim es1.yml
cluster.name: es-es-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 172.16.88.20
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: “*”
node.master: true
node.data: true
discovery.zen.minimum_master_nodes: 2
discovery.seed_hosts:[“172.16.88.20:9300”,“172.16.88.20:9300”,“172.16.88.20:9300”]
cluster.initial_master_nodes: [“es-node1”,“es-node2”,“es-node3”]

vim es2.yml
cluster.name: es-es-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 172.16.88.20
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: “*”
node.master: true
node.data: true
discovery.zen.minimum_master_nodes: 2
discovery.seed_hosts:[“172.16.88.20:9300”,“172.16.88.20:9300”,“172.16.88.20:9300”]
cluster.initial_master_nodes: [“es-node1”,“es-node2”,“es-node3”]

vim es3.yml
cluster.name: es-es-cluster
node.name: es-node3
network.bind_host: 0.0.0.0
network.publish_host: 172.16.88.20
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: “*”
node.master: true
node.data: true
discovery.zen.minimum_master_nodes: 2
discovery.seed_hosts:[“172.16.88.20:9300”,“172.16.88.20:9300”,“172.16.88.20:9300”]
cluster.initial_master_nodes: [“es-node1”,“es-node2”,“es-node3”]

启动容器:三个 注意端口
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /docker/ES/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/ES/es1:/usr/share/elasticsearch/data -v /docker/ES/logs/es1:/usr/share/elasticsearch/logs --name ES01 elasticsearch:7.6.2

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9200 -p 9301:9300 -v /docker/ES/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/ES/es2:/usr/share/elasticsearch/data -v /docker/ES/logs/es2:/usr/share/elasticsearch/logs --name ES02 elasticsearch:7.6.2

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9202:9200 -p 9302:9300 -v /docker/ES/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/ES/es3:/usr/share/elasticsearch/data -v /docker/ES/logs/es3:/usr/share/elasticsearch/logs --name ES03 elasticsearch:7.6.2
docker搭建ES群集

查看容器的IP地址:
docker inspect ES01 | grep IPAdd
docker inspect ES02 | grep IPAdd
docker inspect ES03 | grep IPAdd

修改配置文件:
vim es1.yml
cluster.name: es-es-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 172.17.0.2 //容器IP地址
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: “*”
node.master: true
node.data: true
discovery.zen.minimum_master_nodes: 2
discovery.seed_hosts:[“172.17.0.2:9300”,“172.17.0.3:9300”,“172.17.0.4:9300”] //各个容器IP地址
cluster.initial_master_nodes: [“es-node1”,“es-node2”,“es-node3”]

vim es2.yml
cluster.name: es-es-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 172.17.0.4 //容器IP地址
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: “*”
node.master: true
node.data: true
discovery.zen.minimum_master_nodes: 2
discovery.seed_hosts:[“172.17.0.2:9300”,“172.17.0.3:9300”,“172.17.0.4:9300”] //各个容器IP地址
cluster.initial_master_nodes: [“es-node1”,“es-node2”,“es-node3”]

vim es3.yml
cluster.name: es-es-cluster
node.name: es-node3
network.bind_host: 0.0.0.0
network.publish_host: 172.17.0.3 //容器IP地址
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: “*”
node.master: true
node.data: true
discovery.zen.minimum_master_nodes: 2
discovery.seed_hosts:[“172.17.0.2:9300”,“172.17.0.3:9300”,“172.17.0.4:9300”] //各个容器IP地址
cluster.initial_master_nodes: [“es-node1”,“es-node2”,“es-node3”]

重启ES:
docker restart ES01
docker restart ES02
docker restart ES03

查看是否正常
docker搭建ES群集
docker搭建ES群集
docker搭建ES群集
curl http://本机IP地址:9200/_cat/health?pretty=true 查看群集
docker搭建ES群集
安装elasticsearch-head
docker pull mobz/elasticsearch-head:5
docker run -d -p 9100:9100 --name es-manager mobz/elasticsearch-head:5
浏览器访问http://本机ip:9100/,如下图表示

docker搭建ES群集