使用Docker Compose工具来编排Zookeeper单机服务和包含三节点的Zookeeper集群服务。

服务器的端口规划:

  • 单机s-zk2180
  • 集群zk12181
  • 集群zk22182
  • 集群zk32183

在工作目录创建Docker Composeyml文件:

1
2
3
> cd /opt/sunchaser
> touch zk.yml
> vim zk.yml

zk.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
48
49
50
version: '3.1'
services:
s-zk:
restart: always
privileged: true
image: zookeeper:3.6.2
network_mode: bridge
container_name: s-zk
ports:
- 2180:2181
volumes:
- ./s-zk/conf:/conf
- ./s-zk/data:/data
- ./s-zk/logs:/datalog
zk1:
image: zookeeper:3.6.2
restart: always
hostname: zk1
container_name: zk1
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
volumes:
- /zk-cluster/zk1/data:/data
zk2:
image: zookeeper:3.6.2
restart: always
hostname: zk2
container_name: zk2
ports:
- 2182:2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zk3:2888:3888;2181
volumes:
- /zk-cluster/zk2/data:/data
zk3:
image: zookeeper:3.6.2
restart: always
hostname: zk3
container_name: zk3
ports:
- 2183:2181
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
volumes:
- /zk-cluster/zk3/data:/data

保存退出后执行docker-compose -f zk.yml up -d命令启动服务。

单机服务:zookeeper://ip:2180

集群服务:zookeeper://ip:2181,ip:2182,ip:2183

如果是在阿里云等云服务器上安装,需要在安全组的入方向中添加2180218121822183端口。