一、创建三节点 zookeeper 集群

  1. 将 docker-compose.yml 保存到当前命令行目录下

docker-compose.yml 文件

version: '2'
networks:
zk:
services:
zookeeper1:
image: zookeeper
container_name: zk1.cloud
networks:
- zk
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zk2.cloud:2888:3888 server.3=zk3.cloud:2888:3888
zookeeper2:
image: zookeeper
container_name: zk2.cloud
networks:
- zk
ports:
- "2182:2181"
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zk1.cloud:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zk3.cloud:2888:3888
zookeeper3:
image: zookeeper
container_name: zk3.cloud
networks:
- zk
ports:
- "2183:2181"
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zk1.cloud:2888:3888 server.2=zk2.cloud:2888:3888 server.3=0.0.0.0:2888:3888
  1. 执行命令,如果是首次获取 zookeeper 镜像,输出会有不同

输入

docker pull zookeeper

输出

latest: Pulling from library/zookeeper
Digest: sha256:3f03c6f5a91e0f638f3d6a755b2d32c06583766031353be87e2d633fa3006c23
Status: Image is up to date for zookeeper:latest
  1. 后台启动 zookeeper 集群
docker-compose up -d

输出命令

Creating network "dczk_zk" with the default driver
Creating zk2.cloud ... done
Creating zk1.cloud ... done
Creating zk3.cloud ... done

二、检查进程状态

输入

docker ps

输出

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                        NAMES
cb176c76c620 zookeeper "/docker-entrypoint.…" minutes ago Up minutes /tcp, /tcp, 0.0.0.0:->/tcp zk3.cloud
ee00aba1c766 zookeeper "/docker-entrypoint.…" minutes ago Up minutes /tcp, 0.0.0.0:->/tcp, /tcp zk1.cloud
5d95baa693c2 zookeeper "/docker-entrypoint.…" minutes ago Up minutes /tcp, /tcp, 0.0.0.0:->/tcp zk2.cloud
docker-compose ps

输出

Name                 Command               State                     Ports
-----------------------------------------------------------------------------------------------
zk1.cloud /docker-entrypoint.sh zkSe ... Up 0.0.0.0:->/tcp, /tcp, /tcp
zk2.cloud /docker-entrypoint.sh zkSe ... Up 0.0.0.0:->/tcp, /tcp, /tcp
zk3.cloud /docker-entrypoint.sh zkSe ... Up 0.0.0.0:->/tcp, /tcp, /tcp

三、测试

1. docker 3 为leader

输入

docker exec -it zk1.cloud bash ./bin/zkServer.sh status

输出

ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: follower

输入

docker exec -it zk2.cloud bash ./bin/zkServer.sh status

输出

ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: follower

输入

docker exec -it zk3.cloud bash ./bin/zkServer.sh status

输出

ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: leader

2. 关闭 zk3.cloud 后检查leader变化情况

输入

docker stop zk3.cloud
docker exec -it zk2.cloud bash ./bin/zkServer.sh status

输出

ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: leader

3. 再次启动 zk3.cloud 后检查 leader变化情况

输入

docker start zk3.cloud
docker exec -it zk2.cloud bash ./bin/zkServer.sh status

输出

ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: leader

输入

docker exec -it zk3.cloud bash ./bin/zkServer.sh status

输出

ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: follower

4. 关闭 zk2.cloud 后检查 leader变化情况

输入

docker stop zk2.cloud
docker exec -it zk3.cloud bash ./bin/zkServer.sh status

输出

ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: leader

1分钟,通过docker-compose 搭建zookeeper 集群的更多相关文章

  1. Docker中搭建zookeeper集群

    1.获取官方镜像 从dockerhub获取官方的zookeeper镜像: docker pull zookeeper 2.了解镜像内容 拉取完镜像后,通过 docker inspect zookeep ...

  2. docker 搭建zookeeper集群和kafka集群

    docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之 ...

  3. docker-compose搭建zookeeper集群

    搭建zookeeper集群 创建docker-compose.yml文件 ``` version: '3.1' services: zoo1: image: zookeeper restart: al ...

  4. docker-compose搭建zookeeper集群环境 CodingCode

    docker-compose搭建zookeeper集群环境 使用docker-compose搭建zookeeper集群环境 zookeeper是一个集群环境,用来管理微服务架构下面的配置管理功能. 这 ...

  5. 如何搭建Zookeeper集群

     ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的 ...

  6. centos 6.5 搭建zookeeper集群

    为什么使用Zookeeper? 大部分分布式应用需要一个主控.协调器或控制器来管理物理分布的子进程(如资源.任务分配等)目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制协调程序的反复编写浪费 ...

  7. 使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇

    使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用Cloudera Manager搭建zo ...

  8. 搭建zookeeper集群_其中一个报Mode: standalone,另外两个分别是leader和follower

    用3个zookeeper搭建一个zookeeper集群,首先配置好一个zookeeper1,其余两个都是按照zookeeper1复制过来,然后稍微修改 运行集群成功,查看zookeeper状态 可以看 ...

  9. docker搭建zookeeper集群

    1.在官网拉取镜像 docker pull zookeeper 2.根据镜像启动zookeeper容器 docker run -itd --name zookeeper1 -h zookeeper1 ...

随机推荐

  1. ASA 用TFTP 备份配置方法

    一种方法是用ASDM,在菜单样哪项里有一个backup,保存为一个压缩文件rar,恢复也是用ASDM.另一种是用TFTP SERVER 来做,电脑用网线接上ASA,还要把cisco TFTP SERV ...

  2. Will Georgia Tech's $7K online M.S. in computer science program make the grade?

    https://newatlas.com/georgia-tech--graduate-computer-science-degree-mooc/28763/ Georgia Tech to offe ...

  3. 使用AndroidStudio上传忽略文件至SVN Server的解决措施

    在同组项目进行共享时,容易把本地的配置文件比如*.iml等文件上传至共享服务器,这样会对队友造成巨大的麻烦,为了解决这个问题,可以使用下面方法解决,下面以上传到服务器的app.iml文件为例. 一.在 ...

  4. C++中const和指针

    常见的理解问题: const char * * s;//表示s是指向const char * 类型的指针: char * * const s;//表示s是指向char * 类型的一个常量指针.

  5. 第 14 章 结构和其他数据形式(names)

    *--------------------------------- names1.c -- 使用指向结构的指针 ---------------------------------*/ #includ ...

  6. 2018.09.01 09:08 Genesis

    Nothing to think about, I don't know where to start, the mastery of learning is not an easy task, yo ...

  7. SDN 第三次上机作业

    SDN 第三次上机作业 1.创建拓扑 2.利用OVS命令下发流表,实现vlan功能 3.利用OVS命令查看流表 s1: s2: 4.验证性测试 5.Wireshark 抓包验证

  8. npm WARN unmet dependency问题的解决方法

    remove node_modules $ rm -rf node_modules/ run $ npm cache clean 详见这里: http://stackoverflow.com/ques ...

  9. python第三十七课——模块

    3.模块(m) 概念:在python中.py结尾的文件,我们就称为模块,可以将类.函数.属性...等内容定义在模块中 分类: 1).标准库模块:安装完python环境就有的模块,这些模块都是最常用的模 ...

  10. Moleskine智能笔+专用本:写完随时传到手机

    http://www.totiot.com/61805.html Moleskine公司生产的速写本和速写板一直是涂鸦爱好者和速记员们的首选.该公司还联合Adobe. Livescribe. Ever ...