基于docker构建zookeeper集群

前言

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

拉取镜像

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

启动容器

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.

查看容器IP

如果wangwang

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

修改容器配置文件

修改容器(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的就好了

按照同样的方式修改zk02, zk03

重启容器

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

docker restart zk01
docker restart zk02
docker restart zk03

查看集群状态

进入容器查看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集群搭建完成。

以上内容转载自:
https://blog.csdn.net/u010080562/article/details/120620827

个人复现结果如下:

[root@localhost cenos7]# docker exec -it zk02 /bin/bash
root@f8dd97ac6a28:/apache-zookeeper-3.8.2-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@localhost cenos7]# docker exec -it zk03 /bin/bash
root@d744938de2f1:/apache-zookeeper-3.8.2-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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值