docker搭建zookeeper集群

docker搭建zookeeper集群

zookeeper版本

v3.8

创建zk集群目录

1
mkdir zk-cluster

编写docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
version: '3'

networks:
zk-net:
name: zk-net # 网络名

services:
zoo1:
image: zookeeper:3.8
container_name: zoo1 # 容器名称
restart: always # 开机自启
hostname: zoo1 # 主机名
ports:
- 2181:2181 # 端口号
environment:
# 当前zk实例的id
ZOO_MY_ID: 1
# 整个zk集群的机器端口列表(2181:对client端提供服务的端口,3888:选举leader使用,2888:集群内机器通讯使用(Leader监听此端口))
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
networks:
- zk-net

zoo2:
image: zookeeper:3.8
container_name: zoo2
restart: always
hostname: zoo2
ports:
- 2182:2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
networks:
- zk-net

zoo3:
image: zookeeper:3.8
container_name: zoo3
restart: always
hostname: zoo3
ports:
- 2183:2181
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
networks:
- zk-net

运行docker-compose

1
docker-compose up -d

检查搭建状态

查看节点启动情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@ray-aliyun zk-cluster]# docker exec -it zoo1 /bin/bash
root@zoo1:/apache-zookeeper-3.8.3-bin# cd bin
root@zoo1:/apache-zookeeper-3.8.3-bin/bin# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

[root@ray-aliyun zk-cluster]# docker exec -it zoo2 /bin/bash
root@zoo2:/apache-zookeeper-3.8.3-bin# cd bin
root@zoo2:/apache-zookeeper-3.8.3-bin/bin# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

[root@ray-aliyun zk-cluster]# docker exec -it zoo3 /bin/bash
root@zoo3:/apache-zookeeper-3.8.3-bin# cd bin
root@zoo3:/apache-zookeeper-3.8.3-bin/bin# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader

zoo1、zoo2状态为follower,zoo3状态为leader。

搭建成功!