您的位置:首页 > 运维架构 > Docker

docker搭建zookeeper集群

2018-01-12 11:16 441 查看
docker如何搭建zookeeper集群,对于入门的新手来说,往往是想通过一种最简单的方式完成,所以这里介绍的就不用dockerfile,不用docker-compose,只需在docker hub中下载官方镜像,然后运行三个指令就行了,实现方式如下:

1.下载官方镜像:

$:docker pull docker.io/zookeeper:latest

2.创建指定网络

$:docker network create --subnet=172.18.0.0/16 zknet

这里说下为什么创建指定网络,首先zookeeper集群意思就是在很多台机器上部署zookeeper,然后我们的web应用就可以往zookeeper上注册服务,等待消费者来消费,那其实很多台机器部署zookeeper后只有一个leader,其他都是分支,这些机器是"贯通"的,那怎么"贯通",就是通过IP来"贯通",zookeeper的配置文件里面写明了这些需要相互"贯通"的IP(第3部).所以IP是不是要固定,我们通过一个镜像进入一个容器,IP都是随机分配的,一般是172.17.0.X,如果是随机分配那我们的配置文件怎么事先写入这些"贯通"的IP呢?这样子是不是可以理解?

   3.启动zookeeper集群

$:docker run -tid --name qd-zookeeper1 --restart=always --net zknet --ip 172.18.0.2 -d -p 2191:2181  --env ZOO_MY_ID=1 --env "ZOO_SERVERS=server.1=172.18.0.2:2888:3888 server.2=172.18.0.3:2888:3888 server.3=172.18.0.4:2888:3888"  docker.io/zookeeper:latest

$:docker run -tid --name qd-zookeeper2 --restart=always --net zknet --ip 172.18.0.3 -d -p 2192:2181  --env ZOO_MY_ID=2 --env "ZOO_SERVERS=server.1=172.18.0.2:2888:3888 server.2=172.18.0.3:2888:3888 server.3=172.18.0.4:2888:3888"  docker.io/zookeeper:latest 

$:docker run -tid --name qd-zookeeper3 --restart=always --net zknet --ip 172.18.0.4 -d -p 2193:2181  --env ZOO_MY_ID=3 --env "ZOO_SERVERS=server.1=172.18.0.2:2888:3888 server.2=172.18.0.3:2888:3888 server.3=172.18.0.4:2888:3888"  docker.io/zookeeper:latest 

上面三条指令全部执行完,zookeeper集群就搭建完毕,是否成功验证方式,可以进入zookeeper容器里面后 bin/zkServer.sh status 来查看,如果是flower或者leader基本上说明成功了.

注意:上面"全部"两个字标红了,因为我在操作的过程中,如果只启动其中一个就进到容器里面查看状态,发现是失败的,但是等3个全部启动完,发现就成功了.

这是最基本最简单的集群搭建,至于后面你需要用其他高大上的方式搭建再慢慢研究吧.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  zookeeper docker