Docker之学习安装zookeeper 3.5.8 集群

本文档详细介绍了如何在Docker中搭建Zookeeper集群,包括拉取镜像、设置网络模式、创建容器、配置本地目录以及解析关键参数。特别地,强调了使用bridge网络模式创建自定义网络,确保容器间通信,并提供了创建和启动Zookeeper集群容器的命令。最后,验证了集群的正确运行状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:

docker :

https://hub.docker.com/官网获取zookeeper版本

 

一、拉取镜像

docker pull zookeeper:3.5.8

二、docker容器之间的通信

Docker有三种网络模式,bridge、host、none,在你创建容器的时候,不指定--network默认是bridge。

bridge:为每一个容器分配IP,并将容器连接到一个docker0虚拟网桥,通过docker0网桥与宿主机通信。也就是说,此模式下,你不能用宿主机的IP+容器映射端口来进行Docker容器之间的通信。

host:容器不会虚拟自己的网卡,配置自己的IP,而是使用宿主机的IP和端口。这样一来,Docker容器之间的通信就可以用宿主机的IP+容器映射端口

none:无网络。

1.查看网络

docker network ls

2.创建zookeeper的bridge网络,然后创建容器的时候指定ip。

docker network create --driver bridge --subnet=172.19.0.0/16 --gateway=172.19.0.1 zknetwork

3.查看网络

docker network ls

      

4.查看网络配置

docker network inspect ef622b1b8e37

     

三、创建本地目录:

 1. 创建集群目录

mkdir zookeeper-cluster

 2.在zookeeper-cluster目录下创建

mkdir node1
mkdir node2
mkdir node3

四、zookeeper集群容器的创建命令

docker run -d -p 2181:2181 --name zookeeper_node1 --privileged --restart always --network zknetwork --ip 172.19.0.2 \
-v /home/docker/zookeeper/zookeeper-cluster/node1/volumes/data:/data \
-v /home/docker/zookeeper/zookeeper-cluster/node1/volumes/datalog:/datalog \
-v /home/docker/zookeeper/zookeeper-cluster/node1/volumes/logs:/logs \
-e ZOO_MY_ID=1 \
-e "ZOO_SERVERS=server.1=172.19.0.2:2888:3888;2181 server.2=172.19.0.3:2888:3888;2181 server.3=172.19.0.4:2888:3888;2181" zookeeper:3.5.8

docker run -d -p 2182:2181 --name zookeeper_node2 --privileged --restart always --network zknetwork --ip 172.19.0.3 \
-v /home/docker/zookeeper/zookeeper-cluster/node2/volumes/data:/data \
-v /home/docker/zookeeper/zookeeper-cluster/node2/volumes/datalog:/datalog \
-v /home/docker/zookeeper/zookeeper-cluster/node2/volumes/logs:/logs \
-e ZOO_MY_ID=2 \
-e "ZOO_SERVERS=server.1=172.19.0.2:2888:3888;2181 server.2=172.19.0.3:2888:3888;2181 server.3=172.19.0.4:2888:3888;2181" zookeeper:3.5.8

docker run -d -p 2183:2181 --name zookeeper_node3 --privileged --restart always --network zknetwork --ip 172.19.0.4 \
-v /home/docker/zookeeper/zookeeper-cluster/node3/volumes/data:/data \
-v /home/docker/zookeeper/zookeeper-cluster/node3/volumes/datalog:/datalog \
-v /home/docker/zookeeper/zookeeper-cluster/node3/volumes/logs:/logs \
-e ZOO_MY_ID=3 \
-e "ZOO_SERVERS=server.1=172.19.0.2:2888:3888;2181 server.2=172.19.0.3:2888:3888;2181 server.3=172.19.0.4:2888:3888;2181" zookeeper:3.5.8

五、参数解析

  1. 3.5.x开始,clientPort和clientPortAddress配置参数是server关键字规范的一部分。

  2. --privileged=true参数是为了解决【chown: changing ownership of '/data': Permission denied】,也可以省略true。

  3. 由于是在同一台服务器上安装zookeeper集群,则端口映射三个容器不一样,端口不能冲突,端口设置2181/2182/2183。

 4.   --restart=always     这个表示docker容器在停止或服务器开机之后会自动重新启动

六、验证zookeeper集群容器

 1.zookeeper_node1

  a.进入zookeeper_node1

docker exec -it zookeeper_node1 bash

  b.查看状态信息

   

./bin/zkServer.sh status

   

  c.退出zookeeper_node1

exit

   

 

 2.zookeeper_node2

   a.进入zookeeper_node2

docker exec -it zookeeper_node2 bash

   b.查看状态信息

./bin/zkServer.sh status

   

  c.退出zookeeper_node2

exit

 

3.zookeeper_node3

   a.进入zookeeper_node3

docker exec -it zookeeper_node3 bash

  b.查看状态信息

./bin/zkServer.sh status

    

   c.退出zookeeper_node3

exit

    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hi,all

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值