千家信息网

如何进行Docker下kafka的本地环境搭建

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天就跟大家聊聊有关如何进行Docker下kafka的本地环境搭建,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。我们通过实战来学习如何编写这些
千家信息网最后更新 2026年11月03日如何进行Docker下kafka的本地环境搭建

今天就跟大家聊聊有关如何进行Docker下kafka的本地环境搭建,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

我们通过实战来学习如何编写这些脚本,搭建本地kafka环境;

本次实践会制作docker镜像,整个环境涉及到多个容器,我们先把它们全部列出来,再梳理一下之间的关系,如下图:

kafka sever提供消息服务; message producer的作用是产生执行主题的消息; message consumer的作用是订阅指定主题的消息并消费掉。

###zookeeper### zookeeper使用单机版,没什么需要定制的,因此直接使用官方镜像即可,daocloud.io/library/zookeeper:3.3.6

###kafka sever### 去hub.docker.com上搜索kafka,没看到官方标志的镜像,还是自己做一个吧,写Dockerfile之前先准备两个材料:kafka安装包和启动kafka的shell脚本;

kafka安装包用的是2.9.2-0.8.1版本,在 git@github.com:zq2599/docker_kafka.git中,请clone获取;

启动kafka server的shell脚本内容如下,很简单,在kafka的bin目录下执行脚本启动server即可:

#!/bin/bash$WORK_PATH/$KAFKA_PACKAGE_NAME/bin/kafka-server-start.sh $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties

接下来可以编写Dockerfile了,如下:

# Docker image of kafka# VERSION 0.0.1# Author: bolingcavalry#基础镜像使用tomcat,这样可以免于设置java环境FROM daocloud.io/library/tomcat:7.0.77-jre8#作者MAINTAINER BolingCavalry #定义工作目录ENV WORK_PATH /usr/local/work#定义kafka文件夹名称ENV KAFKA_PACKAGE_NAME kafka_2.9.2-0.8.1#创建工作目录RUN mkdir -p $WORK_PATH#把启动server的shell复制到工作目录COPY ./start_server.sh $WORK_PATH/#把kafka压缩文件复制到工作目录COPY ./$KAFKA_PACKAGE_NAME.tgz $WORK_PATH/#解压缩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#给shell赋予执行权限RUN chmod a+x $WORK_PATH/start_server.sh

如脚本所示,操作并不复杂,复制解压kafka安装包,启动shell脚本,再把配置文件中zookeeper的ip改成link时zookeeper的别名;

Dockerfile编写完成后,和kafka_2.9.2-0.8.1.tgz以及start_server.sh放在同一个目录下,用控制台在此目录下执行:

docker build -t bolingcavalry/kafka:0.0.1 .

镜像构建成功后,新建一个目录编写docker-compose.yml脚本,如下:

version: '2'services:  zk_server:     image: daocloud.io/library/zookeeper:3.3.6    restart: always  kafka_server:     image: bolingcavalry/kafka:0.0.1    links:       - zk_server:zkhost    command: /bin/sh -c '/usr/local/work/start_server.sh'    restart: always  message_producer:     image: bolingcavalry/kafka:0.0.1    links:       - zk_server:zkhost      - kafka_server:kafkahost    restart: always  message_consumer:     image: bolingcavalry/kafka:0.0.1    links:       - zk_server:zkhost    restart: always

docker-compose.yml中配置了四个容器:

  1. zookeeper是官方的;

  2. 其他三个都是用刚刚制作的bolingcavalry/kafka做镜像生成的;

  3. kafka_server在启动时执行了start_server.sh脚本把服务启动起来了;

  4. message_producer和message_consumer都仅仅是将kafka环境安装好了,以便于通过命令行发送或者订阅消息,但是这两个容器本身并未启动server;

  5. kafka_server,message_producer,message_consumer都通过link参数连接到了zookeeper容器,并且message_producer还连接到了kafka server,因为发送消息的时候会用到kafka server的ip地址;

现在打开终端,在docker-compose.yml所在目录下执行docker-compose up -d,即可启动所有容器。

看完上述内容,你们对如何进行Docker下kafka的本地环境搭建有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

目录 脚本 环境 容器 镜像 文件 消息 内容 工作 官方 两个 主题 作用 别名 参数 命令 制作 服务 订阅 配置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会主任 善班互联网科技 汇久创客互联网科技 睿民互联网科技 华脉科技工业互联网产品 须眉科技是互联网公司吗 互联网科技寓意 欧洲十大科技互联网公司 昭通互联网科技选哪家 崇明区互联网教育科技售后服务 宜昌元轩互联网科技有限公司 哈尔滨屹滨互联网科技有限公司 996高科技互联网公司 互联网科技包装股份有限公司上市 九思连强互联网电子科技有限公司 广州梦谷互联网科技有限公司领导 广西科技产业互联网是什么 唯美互联网科技 长沙渺峰互联网科技有限公司 宁波允成互联网科技有限公司 上海挚品互联网科技有限公司 科技与互联网 科技互联网公司装修 互联网核心科技是什么 鑫亿盛互联网科技 奔汉互联网科技 知域互联网科技有限公司大骗子 互联网科技商业 乌苏新华互联网科技做什么的 保山互联网科技靠谱吗
0