一、创建三节点 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. systemd-analyze – 在Linux中查找系统启动性能统计信息

    您是否在使用 systemd 系统和服务管理器,并且您的 Linux 系统需要较长时间才能启动,或者您希望查看系统启动性能的报告? 如果是的话,你已经登陆了正确的地方. 在本文中,我们将向您展示如何使 ...

  2. mysql INSERT的几个语法 IGNORE|REPLACE|LOW_PRIORITY | DELAYED

    INSERT IGNORE 与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据.这样就可以保留 ...

  3. 恶意代码分析_01_YARA规则_CLAMAV病毒库

    写在前面的话: 上一篇文章里,我们已经初步了解了Malware的一些知识,并且利用Clamscan创建了自己的md5类型的病毒库, 那在这篇文章中,我将带领大家一起,来进一步了解病毒库的相关知识,以及 ...

  4. MySQL核心之双一原则

    所谓的双一就是指: sync_binlog=; innodb_flush_log_at_trx_commit= innodb_flush_log_at_trx_commit和sync_binlog这两 ...

  5. WCF 基于 WinForm 宿主 发布

    ServiceHost Host = new ServiceHost(typeof(ServiceHTTP)); //绑定 System.ServiceModel.Channels.Binding h ...

  6. ubuntu各类问题笔记

    ubuntu文本编辑器中文中文乱码问题解决 转载自:http://www.2cto.com/os/201201/117535.html 缺省配置下,用Ubuntu 的文本编辑器(gedit)打开GB1 ...

  7. [技术] OIer的C++标准库 : 字符串库

    引入 上次我在博客里介绍了OI中可能用到的STL中的功能, 今天我们接着来发掘C++标准库中能为OI所用的部分. 点击传送至我的上一篇系列博文 众所周知, OI中经常用到字符串相关的处理, 这时善用字 ...

  8. FZU Monthly-201901 获奖名单

    FZU Monthly-201901 获奖名单 冠军: S031702338 郑学贵 一等奖: S031702524 罗继鸿 S031702647 黄海东 二等奖: S031702413 韩洪威 S0 ...

  9. UltraISO制作使用(服务器装机u盘制作)

    1.准备工作: 1)U盘一个,需要格式化(大于4G,毕竟ISO文件就已经大于4G了) 2)CentOS7.1 iso文件一个(去这里下载:http://www.centoscn.com/) 3)Ult ...

  10. 异常处理(try...catch...final 和 throw , throws)

    1.传统(弱语言)处理异常方式 原理:利用判断来控制异常出现 publicclass Test01 { publicstaticvoid main(String[] args) { Scanner s ...