docker搭建zookeeper集群

前言

在单台服务器上,部署三个docker容器,搭建zookeeper集群,模拟多台服务器上安装zookeeper集群,其实步骤是一样的,我们把三个容器看成三台不同的服务器就行了,这里我们使用docker官网最新的zookeeper镜像搭建集群

1. 拉取镜像

docker pull zookeeper
这里不指定tag,它会默认拉取最新的镜像
或者指定镜像版本
docker pull zookeeper:3.4.10

在这里插入图片描述

2. 启动容器

docker run -d --name zk01 -p 2181:2181 --ip 10.88.0.19 zookeeper
docker run -d --name zk02 -p 2182:2181 --ip 10.88.0.20 zookeeper
docker run -d --name zk03 -p 2183:2181 --ip 10.88.0.21 zookeeper
或者是
docker run -d --name zk01 -p 2181:2181 --ip 10.88.0.19 zookeeper:3.4.10
docker run -d --name zk02 -p 2182:2181 --ip 10.88.0.20 zookeeper:3.4.10
docker run -d --name zk03 -p 2183:2181 --ip 10.88.0.21 zookeeper:3.4.10

可以看到我这里已经有了三个zookeeper容器,注意:宿主机要用不同的端口去映射zookeeper的2181端口,否则从第二个容器开始会启动失败,还有就是ip地址要指定设置成静态,否则后面容器停了之后再次启动ip地址可能会有改变,这样导致集群搭建失败,现在我们看到三个容器已成功启动,状态都是Up.
在这里插入图片描述

3. 查看容器IP

如果wangwang

docker  inspect  -f  '{{.NetworkSettings.IPAddress}}'  zk01
docker  inspect  -f  '{{.NetworkSettings.IPAddress}}'  zk02
docker  inspect  -f  '{{.NetworkSettings.IPAddress}}'  zk03

在这里插入图片描述

4. 修改容器配置文件

4.1 修改容器(10.88.0.19)的zoo.cfg文件

(1)将容器配置文件zoo.cfg复制到宿主机

docker cp zk01:/conf/zoo.cfg ./

(2)编辑zoo.cfg配置文件

vim zoo.cfg
加上以下三行配置
server.1=10.88.0.19:2888:3888;2181
server.2=10.88.0.20:2888:3888;2181
server.3=10.88.0.21:2888:3888;2181

在这里插入图片描述

(3)将修改好的zoo.cfg放回容器内

docker cp ./zoo.cfg  zk01:/conf

(4)将容器中的myid文件复制到宿主机

docker cp zk01:/data/myid  ./

(5)编辑myid文件

vim myid
将编号改为1,当然这个容器的myid就是1,所以这里也不用修改,修改zk02、zk03的就好了
4.2 修改容器(10.88.0.20)的zoo.cfg文件

(1)将容器配置文件zoo.cfg复制到宿主机

docker cp zk02:/conf/zoo.cfg ./

(2)编辑zoo.cfg配置文件

vim zoo.cfg
加上以下三行配置
server.1=10.88.0.19:2888:3888;2181
server.2=10.88.0.20:2888:3888;2181
server.3=10.88.0.21:2888:3888;2181
这里10.88.0.X表示的是三台zookeeper容器对应的ip地址;2888是zookeeper容器间通信的端口,3888是zookeeper选举投票的端口,一般来说都是固定的

(3)将修改好的zoo.cfg放回容器内

docker cp ./zoo.cfg  zk02:/conf

(4)将容器中的myid文件复制到宿主机

docker cp zk02:/data/myid  ./

(5)编辑myid文件

vim myid
将编号改为2

(6)将修改好的myid文件放回容器内

docker cp  ./myid  zk02:/data/
4.3 修改容器(10.88.0.21)的zoo.cfg文件

(1)将容器配置文件zoo.cfg复制到宿主机

docker cp zk03:/conf/zoo.cfg ./

(2)编辑zoo.cfg配置文件

vim zoo.cfg
加上以下三行配置
server.1=10.88.0.19:2888:3888;2181
server.2=10.88.0.20:2888:3888;2181
server.3=10.88.0.21:2888:3888;2181

(3)将修改好的zoo.cfg放回容器内

docker cp ./zoo.cfg  zk03:/conf

(4)将容器中的myid文件复制到宿主机

docker cp zk03:/data/myid  ./

(5)编辑myid文件

vim myid
将编号改为3

(6)将修改好的myid文件放回容器内

docker cp  ./myid  zk03:/data/

注意:
请注意,如果你是在Linux环境下直接搭建zookeeper,请修改本机所在节点的ip为0.0.0.0
例如我当前节点是server.1,则ip修改为0.0.0.0(非docker环境)
server.1=0.0.0.0:2888:3888;2181
server.2=10.88.0.20:2888:3888;2181
server.3=10.88.0.21:2888:3888;2181

6. 重启容器

到这里我们就已经配置好了三台zk服务器,接下来只要将其启动起来即可

docker restart zk01
docker restart zk02
docker restart zk03

7. 查看集群状态

进入容器查看zookeeper启动状态
zk01状态:

[root@localhost ~]# docker exec -it zk01 /bin/bash 
root@01851ffefb21:/apache-zookeeper-3.7.0-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@01851ffefb21:/apache-zookeeper-3.7.0-bin# 

zk02状态:

[root@localhost ~]# docker exec -it zk02 /bin/bash 
root@6fc2cb97e5fb:/apache-zookeeper-3.7.0-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
root@6fc2cb97e5fb:/apache-zookeeper-3.7.0-bin# 

zk03状态:

[root@localhost ~]# docker exec -it zk03 /bin/bash 
root@13e18e279a7a:/apache-zookeeper-3.7.0-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@13e18e279a7a:/apache-zookeeper-3.7.0-bin# 

查询以上三台容器的zookeeper状态可以看到:zk02为主机,zk01和zk03为从机,到此zookeeper集群搭建完成。

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值