1. Zookeeper下载
http://apache.org/dist/zookeeper/

http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
2.Kafka下载
http://apache.org/dist/kafka/
http://mirror.bit.edu.cn/apache/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz
3,Zookeeper的Docker镜像制作
  • 可以直接使用Zookeeper镜像
docker pull zookeeper
  • 也可以自己使用Dockerfile制作
    #基础镜像使用java,这样可以免于设置java环境
FROM java #作者
MAINTAINER Bonker <bonker@foxmail.com> #定义工作目录
ENV WORK_PATH /opt/zkcluster/zkconf #定义zookeeper文件夹名称
ENV ZOOKEEPER_PACKAGE_NAME zookeeper-3.4.9 #创建工作目录
RUN mkdir -p $WORK_PATH #把zookeeper压缩文件复制到工作目录
COPY ./$ZOOKEEPER_PACKAGE_NAME.tar.gz $WORK_PATH/ #解压缩
RUN tar -xvf $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME.tar.gz -C $WORK_PATH/ #删除压缩文件
RUN rm $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME.tar.gz #给shell赋予执行权限
RUN chmod a+x $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/bin/zkServer.sh RUN mv $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/conf/zoo_sample.cfg $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/conf/zoo.cfg ENTRYPOINT $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/bin/zkServer.sh start-foreground
#ENTRYPOINT ["/bin/sh -c",$WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/bin/zkServer.sh]
#CMD [start-foreground]
  • 构建zookeeper
docker build -t bonker/zookeeper:3.4.9 .
  • 运行docker
docker run -d -p 2181:2181 --name zookeeper3.4.9 bonker/zookeeper:3.4.9
4,Kafka的Docker镜像制作
  • 编写执行脚本kafkaStart.sh
	sed -i "s/broker.id=0/broker.id=$BROKER_ID/g" $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties
$WORK_PATH/$KAFKA_PACKAGE_NAME/bin/kafka-server-start.sh $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties
  • 编写Dockerfile
    #基础镜像使用java,这样可以免于设置java环境
FROM java #作者
MAINTAINER Bonker <bonker@foxmail.com> #定义工作目录
ENV WORK_PATH /usr/local/work #定义kafka文件夹名称
ENV KAFKA_PACKAGE_NAME kafka_2.10-0.10.0.0 #创建工作目录
RUN mkdir -p $WORK_PATH #把kafka压缩文件复制到工作目录
COPY ./$KAFKA_PACKAGE_NAME.tgz $WORK_PATH/ #把kafka执行脚本复制到工作目录
COPY ./kafkaStart.sh $WORK_PATH/ #给shell赋予执行权限
RUN chmod a+x $WORK_PATH/kafkaStart.sh #解压缩
RUN tar -xvf $WORK_PATH/$KAFKA_PACKAGE_NAME.tgz -C $WORK_PATH/ #删除压缩文件
RUN rm $WORK_PATH/$KAFKA_PACKAGE_NAME.tgz #执行sed命令修改文件,将连接zk的ip改为link参数对应的zookeeper容器的别名
RUN sed -i 's/zookeeper.connect=localhost:2181/zookeeper.connect=zkhost:2181/g' $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties #执行sed命令修改文件,改变brokerId
#RUN sed -i "s/broker.id=0/broker.id=$BROKER_ID/g" $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties #CMD $WORK_PATH/$KAFKA_PACKAGE_NAME/bin/kafka-server-start.sh $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties
CMD $WORK_PATH/kafkaStart.sh
  • 构建kafka
docker build -t bonker/kafka:2.10-0.10.0.0 .
5,安装docker-compose
  1. 安装python-pip
yum -y install epel-release
yum -y install python-pip
  1. 安装docker-compose
pip install docker-compose
待安装完成后,执行查询版本的命令,即可安装docker-compose
docker-compose version
6,运行Dokcer容器
  • 编写docker-compose.yml
version: '2'
services:
zk_server:
image: bonker/zookeeper:3.4.9
restart: always
kafka_server:
image: bonker/kafka:2.10-0.10.0.0
ports:
- "9091:9092"
environment:
BROKER_ID: 1
links:
- zk_server:zkhost
restart: always
message_producer:
image: bonker/kafka:2.10-0.10.0.0
ports:
- "9092:9092"
environment:
BROKER_ID: 2
links:
- zk_server:zkhost
restart: always
message_consumer:
image: bonker/kafka:2.10-0.10.0.0
ports:
- "9093:9092"
environment:
BROKER_ID: 3
links:
- zk_server:zkhost
restart: always
  • 启动容器
现在打开终端,在docker-compose.yml所在目录下执行docker-compose up -d,即可启动所有容器

Kafka Docker集群搭建的更多相关文章

  1. Kafka+Zookeeper集群搭建

    上次介绍了ES集群搭建的方法,希望能帮助大家,这儿我再接着介绍kafka集群,接着上次搭建的效果. 首先我们来简单了解下什么是kafka和zookeeper? Apache kafka 是一个分布式的 ...

  2. ELK+zookeeper+kafka+rsyslog集群搭建

    前言 环境困境: 1.开发人员无法登陆服务器 2.各系统都有日志,日志数据分散难以查找 3.日志数据量大,查询忙,不能实时 环境要求: 1.日志需要标准化   集群流程图:   角色:   软件: 以 ...

  3. k8s docker集群搭建

    一.Kubernetes系列之介绍篇   •Kubernetes介绍 1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器 ...

  4. Kubernetes(k8s) docker集群搭建

    原文地址:https://blog.csdn.net/real_myth/article/details/78719244 一.Kubernetes系列之介绍篇   •Kubernetes介绍 1.背 ...

  5. hadoop docker集群搭建

    获取镜像 #本机内 docker pull ubuntu:16.04 编排镜像 启动一个容器 #本机内 docker run -i -t --name master ubuntu:16.04 在容器内 ...

  6. docker集群——搭建Mesos+Zookeeper+Marathon的Docker管理平台

    服务器架构 机器信息: 这里部属的机器为3个Master控制节点,3个slave运行节点,其中: zookeeper.Mesos-master.marathon运行在Master端:Mesos-sla ...

  7. Kafka分布式集群搭建

    环境说明 kafka自0.9之后增加了connector的特性.本文主要是搭建一个分布式的kafka connector和broker. 本文用了三台机器进行部署,使用centos 6.6. host ...

  8. 【转】kafka&zookeeper集群搭建指南

    [转自]:http://www.cnblogs.com/luotianshuai/p/5206662.html 待续...

  9. kafka伪集群搭建

    https://blog.csdn.net/zxy987872674/article/details/72466504

随机推荐

  1. P=(1+1/(1-L))/2

    1 y=1/x 2 y=1/(1-x) 3 4

  2. 安装淘宝镜像cnpm时出现问题及解决方案

    问题: 解决方案: 安装完成:

  3. Java并发程序设计(一) 基础概念

    Java并发程序设计(一) 基础概念 一.必须知道的几个概念 一)同步(Synchronous)和异步(Asynchronous) 同步:同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后 ...

  4. 潭州课堂25班:Ph201805201 django 项目 第二十六课 docker简介 (课堂笔记)

    官方文档: https://docs.docker.com/install/linux/docker-ce/ubuntu/#set-up-the-repository 1,更新下sudo apt-ge ...

  5. 潭州课堂25班:Ph201805201 django 项目 第五课 静态页面转为模板 (课堂笔记)

    一.分析静态页面   1.静态vs动态 条目 静态页面 动态页面 网站内容 固定不变 经常变动 浏览器加载速度 更快(无需向服务器发起请求) 更慢 改变网站内容 很难(修改或者创建新的html页面) ...

  6. 面试知识点——Java

    目录 Java容器 hashmap实现原理 java多线程 jvm内存模型 java 垃圾回收机制 对象存活状态检查 垃圾收集算法 垃圾收集器 内存分配与回收策略 java nio Java容器 ha ...

  7. [P1034][NOIP2001]一元三次方程求解 (二分)

    二分 #include<bits/stdc++.h> using namespace std; double a,b,c,d; double fc(double x) { )+b*pow( ...

  8. Shooting Contest 射击比赛 [POJ1719] [CEOI1997] [一题多解]

    Description(下有中文题意) Welcome to the Annual Byteland Shooting Contest. Each competitor will shoot to a ...

  9. MyBatis 作用域(Scope)和生命周期

    SqlSessionFactoryBuilder SqlSessionFactoryBuilder的作用是创建SqlSessionFactory.一旦创建了SqlSessionFactory,就不再需 ...

  10. Java Web 域名

    虽然可以直接通过IP地址来访问WWW的每一台主机,但是32位IP地址非常难记.所以,为了便于记忆,按照一定的规则给Internet上的计算机起了名字即域名.通俗地说,域名相当于一个房屋的门牌号码,别人 ...