一、创建三节点 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. JS里设定延时

    使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操作. setTimeout("function",tim ...

  2. 高通 display 驱动【转】

    高通display驱动 0. 关键字 MDSS : 高通平台lcd multimedia Display sub system DSI: Display Serial Interface qcom,m ...

  3. Java 中File类的createNewFile()与createTempFile(), delete和deleteOnExit区别

    1. Java 中File类的createNewFile()与createTempFile()的区别 最近,在看代码时看到了一个方法, File.createTempFile() ,由此联想到File ...

  4. C#程序如何捕捉未try/catch的异常——不弹“XXX已停止工作”报错框

    诚意满满直接上代码: static void Main(string[] args) { //Main函数中增加此句 AppDomain.CurrentDomain.UnhandledExceptio ...

  5. Alpha 任务状态总览(持续更新)

    Alpha 任务状态总览(持续更新) Part 0 · 简 要 目 录 Part 1 · 流 程 Part 2 · 总 任 务 量 安 排 Part 3 · 爬 虫 任 务 Part 4 · 接 口 ...

  6. RMAN常用命令汇总!

    进入RMAN:$ rman target sys/oracle@orcl   --远程连接到rman$ rman target sys/oracle@orcl @backup_db.ram   --远 ...

  7. <数据结构与算法分析>读书笔记--递归

    一.什么是递归 程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的 ...

  8. OpenCV——边缘检测入门、Canny边缘检测

    边缘检测的一般步骤: 最优边缘检测的三个评价标准: 低错误率:表示出尽可能多的实际边缘,同时尽可能地减少噪声产生的误报: 高定位性:标识出的边缘要与图像实际边缘尽可能接近: 最小响应:图像中的边缘只能 ...

  9. 卢卡斯定理 Lucas (p为素数)

    证明摘自:(我网上唯一看得懂的证明) https://blog.csdn.net/alan_cty/article/details/54318369 结论:(显然递归实现)lucas(n,m)=luc ...

  10. linux系统分析工具续-SystemTap和火焰图(Flame Graph)

    本文为网上各位大神文章的综合简单实践篇,参考文章较多,有些总结性东西,自认暂无法详细写出,建议读文中列出的参考文档,相信会受益颇多.下面开始吧(本文出自 “cclo的博客” 博客,请务必保留此出处ht ...