DevOps系列文章 之 docker 制作kafka镜像

中小团队基于Docker的devops实践 笔者所在的技术团队负责了数十个项目的开发和维护工作,每个项目都至少有dev、qa、hidden、product四个环境,数百台机器,在各个系统之间疲于奔命,解决各种琐碎的问题,如何从这些琐碎的事情中解放出来?devops成了我们不二的选择。 文章是基于目前的环境和团队规模做的devops实践总结,方案简单易懂,容易落地且效果显著。 实现方法 先来看下流程图: 工程师... 阅读详情

Docker制作Kafka镜像教程
概述
本教程将指导你如何使用Docker制作一个Kafka镜像。Kafka是一个高性能、分布式的消息队列系统,用于处理大规模的实时数据流。使用Docker制作Kafka镜像可以方便地部署和管理Kafka集群。

整体流程
下面是制作Kafka镜像的整体流程:

步骤    描述
1    安装Docker
2    下载Kafka
3    创建Dockerfile
4    构建Docker镜像
5    运行Kafka容器
现在,让我们逐步来完成这些步骤。

步骤1:安装Docker
首先,你需要在你的机器上安装Docker。Docker是一个开源的容器化平台,可以帮助我们创建、部署和运行应用程序。

你可以通过以下命令来安装Docker:

sudo apt-get update
sudo apt-get install docker-ce



步骤2:下载Kafka
在制作Kafka镜像之前,你需要下载Kafka二进制文件。你可以从Kafka的官方网站(

wget 
tar -xzf kafka_2.13-2.8.0.tgz



步骤3:创建Dockerfile
Dockerfile是一个用于构建Docker镜像的文本文件。在这一步,我们将创建一个Dockerfile,用于制作Kafka镜像。

在你的项目目录下创建一个名为Dockerfile的文件,并将以下代码复制到文件中:

# 基于官方的OpenJDK 8镜像作为基础镜像
FROM openjdk:8

# 设置Kafka版本
ARG KAFKA_VERSION=2.8.0

# 设置Kafka安装路径
ARG KAFKA_HOME=/opt/kafka

# 下载并安装Kafka
RUN wget -q  && \
    tar -xzf kafka_2.13-${KAFKA_VERSION}.tgz -C /opt && \
    rm kafka_2.13-${KAFKA_VERSION}.tgz

# 设置Kafka环境变量
ENV PATH=${KAFKA_HOME}/bin:$PATH

# 设置Kafka工作目录
WORKDIR ${KAFKA_HOME}

# 暴露Kafka监听端口
EXPOSE 9092

# 启动Kafka
CMD ["kafka-server-start.sh", "config/server.properties"]



以上Dockerfile使用了官方的OpenJDK 8镜像作为基础镜像,并下载并安装了指定版本的Kafka。同时,它还设置了Kafka的环境变量和工作目录,并暴露Kafka的监听端口。

步骤4:构建Docker镜像
在完成Dockerfile的编写后,我们将使用以下命令构建Docker镜像:

docker build -t kafka:2.8.0 .



该命令会在当前目录下构建一个名为kafka:2.8.0的Docker镜像。

步骤5:运行Kafka容器
完成Docker镜像的构建后,我们可以使用以下命令来运行Kafka容器:

docker run -d --name kafka -p 9092:9092 kafka:2.8.0



该命令会在后台运行一个名为kafka的容器,并将主机的9092端口映射到容器的9092端口。

至此,你已经成功地用Docker制作了一个Kafka镜像,并成功运行了一个Kafka容器。

完整案例

# 基于官方的OpenJDK 8镜像作为基础镜像
FROM openjdk:8

# 设置Kafka版本
ARG KAFKA_VERSION=3.4.1

# 设置Kafka安装路径
ARG KAFKA_HOME=/opt/kafka
ADD kafka_2.12-3.4.1.tgz /opt
# 下载并安装Kafka
RUN mv /opt/kafka_2.12-3.4.1 /opt/kafka

# 设置Kafka环境变量
ENV PATH=${KAFKA_HOME}/bin:$PATH

# 设置Kafka工作目录
WORKDIR ${KAFKA_HOME}
COPY docker-entrypoint.sh docker-entrypoint.sh
# 暴露Kafka监听端口
EXPOSE 9092 2181

# 启动Kafka
ENTRYPOINT ["/bin/bash", "docker-entrypoint.sh" ]

#!/bin/bash
 
if [ "$1" = 'zk' ]; then
	zookeeper-server-start.sh config/zookeeper.properties 2>&1 &
	echo "zk ..."
fi
 
kafka-server-start.sh config/server.properties

Kafka Docker部署避坑指南:KRaft模式与双监听器实战 Apache Kafka 是分布式流处理的核心中间件,其容器化部署涉及网络、存储、元数据管理等多层技术协同。理解 Kafka 的监听器机制(LISTENERS/ADVERTISED_LISTENERS)与地址解析逻辑,是解决‘本地连得上、容器连不上’问题的关键;而 KRaft 模式通过移除 ZooKeeper 依赖,显著简化了 Docker 环境下的集群启动与故障恢复流程。结合命名卷挂载策略可规避权限与跨平台兼容性风险,双监听器配置则精准分离容器内/外网络访问路径,支撑 Spring Boot 应用集成、C 阅读详情

相关推荐

基于Docker的devops实践—jenkins持续集成自动部署elk日志+zabbix监控

笔者所在的技术团队负责了数十个项目的开发和维护工作,每个项目都至少有dev、qa、hidden、product四个环境,数百台机器,在各个系统之间疲于奔命,解决各种琐碎的问题,如何从这些琐碎的事情中解放出来?devops成了我们不二的选择。 文章是基于目前的环境和团队规模做的devops实践总结,方案简单易懂,容易落地且效果显著。 实现方法 实现方法 先来看下流程图: ...

山东梅长苏 2076

kafka的Docker镜像使用说明(wurstmeister/kafka)

在hub.docker.com网站上,Star最多的kafka镜像是wurstmeister/kafka,今天一起来实践这个镜像,使用此镜像搭建kafka环境,并且生产和消费消息;

weixin_49131823的博客 2010

Docker 部署 Kafka 的核心原理与 KRaft 实战配置

Apache Kafka 是一个分布式流处理平台,其稳定运行高度依赖网络地址声明、元数据管理与节点身份识别等底层机制。在容器化场景下,Docker 不仅提供环境隔离,更通过显式配置(如 listeners 与 advertised.listeners 解耦、KRaft 模式下的 node.id 和 controller.quorum.voters)将 Kafka 的分布式契约固化为可版本化、可复现的基础设施代码。这种模式显著降低开发与生产环境差异带来的连接失败、消费者重平衡、元数据同步异常等问题,广泛应用于

weixin_33508411的博客 302

拉取/启动kafka的docker镜像

拉取/启动kafka的docker镜像

qq_46112274的博客 2224

Docker镜像离线批量导入:5分钟完成48个镜像部署

Docker镜像是容器化技术的核心组件,它通过分层存储机制将应用及其依赖打包成可移植的模板。其工作原理基于联合文件系统,允许镜像层在不同容器间共享,从而提升存储效率。这一技术价值在于实现了应用环境的标准化和快速复制,尤其在企业内网、离线部署等网络受限场景下至关重要。通过docker save和docker load命令,可以将镜像打包为tar文件进行离线传输,有效解决网络依赖问题。本文聚焦于批量镜像管理,提供自动化脚本实现从镜像打包到批量导入的全流程方案,涵盖企业级CI/CD流水线和离线环境交付等实际应用场

weixin_34128839的博客 353

【Kafka】Kafka 镜像 Kafka mirroring (MirrorMaker)

1.概述 Kafka的镜像特性使得维护一个现有Kafka集群的副本成为可能。下图展示了如何使用MirrorMaker工具将一个源Kafka集群镜像到一个目标(镜像)Kafka集群。该工具使用一个Kafka消费者来消费来自源集群的消息,并使用一个嵌入式的Kafka生产者将这些消息重新发布到本地(目标)集群。 也有关于镜像制造者的文档 文档 2.如何设置镜子 设置镜像很简单——在启动目标集群后,只需启动镜像制造者进程。至少,镜像制造者有一个或多个消费者配置,一个生产者配置和一个白名单或黑名单。你需要将消费者.

九师兄 3269

程序员欣宸文章汇总(DevOps篇)

本文保存了作者所有DevOps相关文章的地址,并做了轻量级分类,希望您能从中找到有参考价值的内容,那将是我的荣幸

程序员欣宸的博客 1万+

制作zookeeper容器镜像

制作zookeeper容器镜像 文章目录制作zookeeper容器镜像环境准备思路1.确定基础镜像2.部署服务所需环境3.部署服务4.初始化服务5.暴露端口启动zk6. 构建镜像 环境准备 Centos7.5 docker-ce 镜像准备: centos:lastest 软件准备: zookeeper-3.4.14.tar.gz 思路 确定基础镜像 部署服务所需环境 部署服务 初始化服务 暴露端口启动zk 构建镜像 1.确定基础镜像 这里使用的基础镜像为centos:laster Dockerfil

洛溪的博客 729

【devOps】docker实例安装

KAFKA_HOME/bin/kafka-topics.sh --create --topic test --zookeeper kafka_zookeeper_1:2181 --replication-factor 1 --partitions 1 #创建一个topic(其中假设zookeeper容器名为 kafka_zookeeper_1,topic名为test)#在自己存放docker-compose.yml文件的目录下创建一个docker-compose.yml文件,内容如下。

2301_79098332的博客 726

kafka 的docker镜像

kafka的docker镜像包含了kafka,zookeeper 和kafkamanager,可以通过docker 来load 安装

用Origin快速拟合荧光寿命、PL Decay (TRPL)数据分析处理

用Origin快速拟合荧光寿命、PL Decay (TRPL)数据分析处理

A20802013的博客 2万+

DevOps-Bash-tools 的 DockerHub 镜像构建状态页 DOCKER_STATUS.md:生成原理与徽章体系解析

本指南以 [DOCKER_STATUS.md](https://link.gitcode.com/i/7a037ec49883a3df6b9358946acd48ba) 为切入点,深入讲解 DevOps-Bash-tools 仓库中如何自动生成覆盖 50 个 DockerHub 镜像仓库的构建状态看板,并逐段解析其背后的生成脚本 [docker/docker_generate_status_pag

gitblog_00290的博客 168

【NLG】(六)文本生成评价指标—— ROUGE原理及代码示例

前奏: 【NLG】(一)文本生成评价指标——BLEU原理及代码示例 【NLG】(二)文本生成评价指标—— METEOR原理及代码示例 【NLG】(三)文本生成评价指标—— ENTROPY原理及代码示例 【NLG】(四)文本生成评价指标—— diversity原理及代码示例 【NLG】(五)文本生成评价指标—— kl_divergence原理及代码示例 1.ROUGE原理 2.优缺点 3.如何算ROUGE ...

凝眸伏笔的博客 1万+

中小团队基于Docker的Devops实践

笔者所在的技术团队负责了数十个项目的开发和维护工作,每个项目都至少有dev、qa、hidden、product四个环境,数百台机器,在各个系统之间疲于奔命,解决各种琐碎的问题,如何从这些琐碎的事情中解放出来?devops成了我们不二的选择。 文章是基于目前的环境和团队规模做的devops实践总结,方案简单易懂,容易落地且效果显著。 实现方法 先来看下流程图: 工程师本地开发,开发完成后提...

weixin_30718391的博客 107

Arm A-profile架构RAS系统设计:可靠性、可用性与可服务性解析

在计算机体系结构中,可靠性(Reliability)、可用性(Availability)和可服务性(Serviceability)是构建高可信系统的核心要素。RAS系统通过硬件错误检测、隔离和恢复机制,确保系统持续稳定运行。其技术原理包括ECC内存纠错、冗余执行单元和错误传播阻断等关键技术,可显著降低数据中心等关键业务场景的故障率。现代芯片设计中,Arm A-profile架构提供标准化的RAS框架,涵盖从内存子系统到计算单元的全方位错误管理。通过分层防御策略和统一错误记录格式,实现硬件错误可追溯、可修复。

weixin_30920853的博客 355

(赛事-2022)[re:Invent 2018]-002:通过分析log多次迭代优化奖励函数后- 最快7.6s / 圈

Deepracer training 流程

Rainbow 4711

Docker入门教程(详细)

个人理解:开发了一个项目 可以在本机运行 但是如果版本更新 可能就会导致服务不可使用 后期我们维护起来就很繁琐 因为对于每一个机器 我们都得进行环境的部署呀 配置呀什么的比如: 我在window系统下开发了一个项目(jar+redis+ES+Kafka+...) 但是我现在准备部署到服务器上去 因为不能夸平台 所以我还得重新去按照配置环境什么的 但是docker 就可以让我们 直接将项目打包然后部署上线了 不用一个个单独去维护。Docker图形化界面管理工具!提供一个后台面板供我们操作!

LEO 6万+

BrainVision Recorder 和 BrainVision Analyzer 2.2 安装

本篇为《EEG处理》系列博客的第二篇,该系列博客主要记录EEG信号处理的学习过程中的软件安装和学习过程,方便以后查阅。本篇为BrainVision Recorder 和 BrainVision Analyzer 2.2 的安装过程。 BrainVision Recorder 和 BrainVision Analyzer 2.2 安装安装前奏Brain Vision Analyzer分析软件 安装Brain Vision Recorder记录软件 安装推荐几款个人使用的科研软件 安装前奏 Brain V

梁小憨憨的博客 5060

Kafka Docker 容器化实战:KRaft 模式下的生产级部署与 Compose 最佳实践

Apache Kafka 作为分布式事件流平台,其本地开发、测试与 CI 环境的一致性长期困扰工程团队。Docker 容器化通过进程隔离与配置封装,有效解决环境差异、依赖冲突和启动不可控等核心痛点;而 KRaft 元数据管理模式替代 ZooKeeper 后,显著降低容器化复杂度,提升单节点启动速度与故障收敛能力。结合 Docker Compose 的声明式编排,开发者可复用同一套配置实现跨 Mac/Linux/CI 的 Kafka 集群快速拉起、健康检查与网络拓扑模拟,兼顾轻量性与生产级可用性。本文聚焦 K

weixin_34072296的博客 303

基于rms包的限制性立方样条回归(RCS)R代码实现

RCS

2301_79584199的博客 2万+

LLC 谐振变换器开发设计1

本文档详细介绍了基于DSP28335的LLC谐振变换器开发设计。系统采用频率调制(FM)控制方式,实现高效率、高功率密度的隔离型DC/DC变换。文档阐述了LLC拓扑结构和工作原理,给出了谐振频率、品质因数等关键参数的计算公式。硬件设计包括功率器件选型和采样电路实现,软件部分提供了DSP28335的核心控制算法和代码示例,涵盖频率转换、PI控制和PWM生成。系统还设计了启动策略和保护机制,确保可靠运行。该设计实现了主开关零电压开通和低纹波输出特性。

329

docker logstash_中小团队基于Docker的Devops实践

文章是基于目前的环境和团队规模做的devops实践总结,方案简单易懂,容易落地且效果显著。实现方法先来看下流程图:工程师本地开发,开发完成后提交代码到代码仓库,[自动]触发jenkins进行持续集成与部署,部署完成会收到结果邮件。项目运行过程中可通过日志系统查看程序日志,有异常会触发监控系统发送报警。从编码到上线后结果反馈都可以工程师自主完成,形成完整闭环,运维则负责提供完整流程的工具链及协助异常...

weixin_39564368的博客 69

swl安装无法与服务器建立链接,如何解决?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 2075
上一篇: DevOps系列文章 之GitLabCI模板库的流水线
下一篇: 容器化安装环境EFK搭建
Coder_Boy_
博客等级 码龄10年 2804粉丝 819原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder_Boy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值