使用docker搭建kafka环境
Requirements
最近学习了下kafka,为方便搭建环境,使用docker进行部署。
需要首先安装docker的环境。要求操作系统是linux的64位系统。
docker的安装(适于rpm/deb安装):
curl -fsSL https://get.docker.com/ | sh
docker-compose的安装:
curl -L https://github.com/docker/compose/releases/download/1.7.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Kafka Image
Dockerfile
Dockerfile是用于描述镜像的制作过程。根据kafka的教程,编写对应的Dockerfile。
基础镜像使用了centos6的版本,当然根据需要也可以使用其他的版本。
FROM index.alauda.cn/tutum/centos:centos6
RUN yum install -y wget
RUN wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.rpm
RUN rpm -ivh jdk-8u91-linux-x64.rpm
RUN mkdir -p /kafka && cd /kafka && wget http://mirrors.cnnic.cn/apache/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz && tar -xzf kafka_2.11-0.9.0.0.tgz && cd kafka_2.11-0.9.0.0
WORKDIR /kafka/kafka_2.11-0.9.0.0
有了这样的一个Dockerfile,可以在本地,也可以使用公有云进行镜像制作。在本地制作的话,可以使用该命令:
docker build -t index.alauda.cn/xuxinkun/kafka .
我使用了灵雀云的镜像服务进行build,可以在这里查看。
Docker-Compose
有了镜像之后,现在需要对服务进行启动。这里使用了docker的编排服务docker-compose,进行编排。
kafka主要包括两个服务,zookeeper和kafka。所以需要分别启动两个服务。这里将两个服务直接使用宿主机的网络。编写docker-compose.yaml
如下:
zk:
image: index.alauda.cn/xuxinkun/kafka
net: host
stdin_open: true
tty: true
command: bin/zookeeper-server-start.sh config/zookeeper.properties
kafka:
image: index.alauda.cn/xuxinkun/kafka
net: host
stdin_open: true
tty: true
command: bin/kafka-server-start.sh config/server.properties
启动服务
现在可以一条命令启动所有的服务:
[root@node1 Dockerfile]# docker-compose up -d
Creating dockerfile_kafka_1
Creating dockerfile_zk_1
查看服务状态
对服务状态进行查看。
[root@node1 Dockerfile]# docker-compose ps
Name Command State Ports
----------------------------------------------------------------------
dockerfile_kafka_1 bin/kafka-server-start.sh ... Up
dockerfile_zk_1 bin/zookeeper-server-start ... Up
当然也可以使用docker ps -a
进行查看。
停止服务
[root@node1 Dockerfile]# docker-compose stop zk kafka
Stopping dockerfile_kafka_1 ... done
Stopping dockerfile_zk_1 ... done
删除服务
[root@node1 Dockerfile]# docker-compose rm zk kafka
使用docker搭建kafka环境的更多相关文章
- docker搭建kafka环境&&Golang生产和消费
docker 搭建kafka环境 version: '2' services: zk1: image: confluentinc/cp-zookeeper:latest hostname: zk1 c ...
- mac下通过docker搭建LEMP环境
在mac下通过docker搭建LEMP环境境 1.安装virtualbox.由于docker是在lxc环境的容器 2.安装boot2docker,用于与docker客户端通讯 > brew up ...
- 【Devops】【docker】【CI/CD】1.docker搭建Gitlab环境
CI/CD[持续化集成/持续化交付] docker搭建Gitlab环境 1.查询并拉取gitlab镜像 docker search gitlab docker pull gitlab/gitlab-c ...
- Mac下docker搭建lnmp环境 + redis + elasticsearch
之前在windows下一直使用vagrant做开发, 团队里面也是各种开发环境,几个人也没有统一环境,各种上线都是人肉,偶尔还会有因为开发.测试.生产环境由于软件版本或者配置不一致产生的问题, 今年准 ...
- docker搭建lnmp环境(问题,资料,命令)
入门参考 http://www.runoob.com/docker/docker-install-nginx.html 十大常用命令玩转docker 1. #从官网拉取镜像 docker pull & ...
- Docker搭建disconf环境,三部曲之一:极速搭建disconf
Docker下的disconf实战全文链接 <Docker搭建disconf环境,三部曲之一:极速搭建disconf>: <Docker搭建disconf环境,三部曲之二:本地快速构 ...
- Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像
Docker下的disconf实战全文链接 <Docker搭建disconf环境,三部曲之一:极速搭建disconf>: <Docker搭建disconf环境,三部曲之二:本地快速构 ...
- Docker搭建disconf环境,三部曲之三:细说搭建过程
Docker下的disconf实战全文链接 <Docker搭建disconf环境,三部曲之一:极速搭建disconf>: <Docker搭建disconf环境,三部曲之二:本地快速构 ...
- 使用Docker搭建apache环境
Docker搭建apache环境 前言 操作机:ubuntu16 x64 Dockers servion 18.09.7 下载镜像 使用docker pull 拉取最新的 apache镜像 命令:do ...
随机推荐
- Linq to Sql:N层应用中的查询(下) : 根据条件进行动态查询
原文:Linq to Sql:N层应用中的查询(下) : 根据条件进行动态查询 如果允许在UI层直接访问Linq to Sql的DataContext,可以省去很多问题,譬如在处理多表join的时候, ...
- bootstrap基本标签总结2
[布局]bootstrap基本标签总结2 缩略图 <div class="container"> <div class="row"> ...
- PHP 15:异常
原文:PHP 15:异常 看完了out_put_fns.php文件,让我们再看看db_fns.php文件.其代码非常简单,如下: ?> 其作用是连接数据库,并返回一个数据库连接.在这里我们 ...
- jQuery EasyUI API - Layout - Layout[原创汉化官方API]
最近在学习jQuery EasyUI,发现中文的文档好少,部分文档不错但它是鸟语的,为了大家也为了自己学习吧,汉化做一下笔记. 有没有说清楚的,或者翻译不正确的地方还请大家谅解指出.. 由于工作时间原 ...
- mcstructs-MircoCStructs用C语言实现的微型数据结构库
以C语言的方式,我将逐步实现以下算法: 我的Github地址为:https://github.com/tfa2012/mcstructs 1 线性链表 2 环形缓冲区 3 Hash表
- 六大利器助Java程序开发事半功倍
实用的开发工具对于Java程序开发者来说,工作起来事半功倍.本文中小编将为大家列举包括开发环境.分析测试.代码保护等实用工具. 开发环境 Sonarqube Sonarqube是一个开源平台,是一款代 ...
- VS2010新建Web网站与新建Web应用程序的区别
在Visual Studio 2010中,除了可以使用“创建Web应用程序”的方式来构建自己的Web项目之外,还可以通过创建“Web网站”的方式来构建Web项其中,Web网站的创建方法:打开Visua ...
- AjaxPro实现无刷新更新数据
使用AjaxPro实现无刷新更新数据 需求 在一个页面动态无刷新的更新后台得到的数据.要想无刷新的更新数据,需要使用Javascript能够获取后台返回的数据,然后通过第三方Javascript库(J ...
- 手机网站keyup解决方案
模糊搜索keyup无效,解决方案如下 //手机网站解决keyup的方法 $(function () { $('#repairsearch').bind('focus', filter_time); } ...
- 回车tab切换
//event表示事件对象,keyCode表示键值,srcElement事件源 function changeCommand(){ //如果按下的是回车,并且不是提交按钮,不是重置按钮,则回车认为是t ...