在Docker中启动zookeeper模拟集群
2019-03-09 本文已影响0人
pjqdyd
这里我们将会使用docker-componse来启动3个zookeeper容器;
1.先下载好zookeeper的镜像docker pull zookeeper
.
2.创建一个目录,在该目录下新建docker-componse.yml文件,内容如下:
version: '3.1'
services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo2:
image: zookeeper
restart: always
hostname: zoo2
ports:
- 2182:2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo3:
image: zookeeper
restart: always
hostname: zoo3
ports:
- 2183:2181
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
其中:
2181端口号是客户端连接zookeeper集群监听的端口号,
3888是选举leader使用的端口号,
2888是集群内通讯使用,leader和follower之间数据同步使用的端口号,leader监听此端口号.
3.在该目录下启动命令行,运行docker-componse up -d
启动这三个容器:

4.运行docker ps
查看启动的容器:

5.以交互式的方式进入某个容器exec -it zookeeper_zoo3_1 /bin/bash
,
并进入cd bin/
目录,查看容器的状态./zkServer.sh status
:

6.再进入cd /conf/
目录,运行cat zoo.cfg
查看zookpeeper容器的配置信息:

其中:
clientPort就是zookeeper服务端监听客户端的端口,
dataDir目录是数据存放的目录,并且在/data下的myid文件中定义了zookeeper服务的id编号, 也就是server.id