Docker 安装 Kafka

本文介绍了如何在Docker中安装Kafka,首先强调3.0以前Kafka依赖Zookeeper,然后指导读者拉取官方bitnami/kafka镜像,设置环境变量如ALLOW_PLAINTEXT_LISTENER和KAFKA_BROKER_ID,并启动Kafka容器。文章还提醒,在生产环境中不应开启PLAINTEXT侦听器以确保安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker在3.0以前依赖于zookeeper,在安装kafka之前需要先安装zookeeper集群。

关于 zookeeper 集群的安装本文不做介绍,大家可以自行百度。

一、查看kafka镜像

docker search kafka

我们选择官方镜像: bitnami/kafka。

二、拉取镜像

docker pull bitnami/kafka

拉取镜像需要一点时间,等待几分钟即可。

如果不指定版本,那么默认是latest版本。

 三、查看镜像

docker images

 四、运行镜像

docker run -d --name kafka -p 9092:9092 --restart=always \
-e KAFKA_BROKER_ID=0 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=192.168.222.100:2181 \
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.222.100:9092 \
-e TZ="Asia/Shanghai" bitnami/kafka:latest

参数解释:

第一行的就不用解释了,大家应该都知道了。

-e:指定环境变量

ALLOW_PLAINTEXT_LISTENER:允许使用PLAINTEXT侦听器

KAFKA_BROKER_ID=0:集群的broker的ID,该ID是集群的唯一标识

KAFKA_CFG_ZOOKEEPER_CONNECT:zk的连接地址

KAFKA_CFG_ADVERTISED_LISTENERS:kafka发布到zookeeper供客户端使用的服务地址。

TZ:指定时区,这里指定亚洲上海时区,也就是东八区

五、查看容器

docker ps

六、查看日志

docker logs kafka

 这里也可以指定容器id,不过我更习惯使用容器名称

docker logs 04f412a52c5b

 启动日志比较多,我们这里就不一一贴出来了,大家感兴趣的可以自己安装后查看启动日志。

启动日志中东西很多,包含了启动的日志、kafka的配置信息等等。

上面截图中的一个警告信息:

You set the environment variable ALLOW_PLAINTEXT_LISTENER=yes. For safety reasons, do not use this flag in a production environment.

意思是说我们开启了允许PLAINTEXT侦听器,为了安全起见,在生产环境上不要使用。

今天先到这里,后面我们把kafka的图形化界面的安装以及使用也整理出来,主要是kafka-manager和kafka-map。

当然,容器化安装的kafka一般还是个人练习使用,当然也有不少公司采取容器化部署,但是主流的还是二进制包的安装方式。等后面我们再采用二进制包的安装方式安装一下。

### 使用Docker安装Kafka的教程 #### 准备工作 为了确保顺利安装,需先确认已正确设置好Docker环境。这一步骤对于任何打算利用Docker来部署服务的应用程序来说都是必不可少的前提条件[^2]。 #### 获取官方镜像 从Docker Hub拉取最新的Apache Kafka镜像文件,这是启动集群前的重要准备工作之一。通常情况下,推荐使用`confluentinc/cp-kafka`作为首选项,因为它由Confluent公司维护,提供了稳定可靠的版本支持。 ```bash docker pull confluentinc/cp-kafka:latest ``` #### 创建网络桥接 为了让ZooKeeper与Kafka实例之间能够相互通信,创建一个新的自定义网桥是非常必要的操作。此动作有助于简化后续容器间的连接配置过程。 ```bash docker network create kafka-net ``` #### 启动ZooKeeper服务 由于Kafka依赖于ZooKeeper来进行协调管理,因此需要先行启动一个ZooKeeper实例。这里采用的是Confluent Platform所提供的官方镜像,并将其加入到之前建立好的网络中去。 ```bash docker run -d \ --name=zookeeper \ --network=kafka-net \ -e ZOOKEEPER_CLIENT_PORT=2181 \ confluentinc/cp-zookeeper:latest ``` #### 配置并启动Kafka Broker 接下来便是重点——启动Kafka broker本身了。需要注意的一点是在启动参数里指定了`KAFKA_ADVERTISED_LISTENERS`环境变量,用于告知外部应用程序如何访问当前节点上的Kafka服务[^5]。 ```bash docker run -d \ --name=kafka \ --network=kafka-net \ -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \ -e KAFKA_ADVERTISED_LISTENERS.PLAINTEXT_HOST=localhost:9092 \ -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \ confluentinc/cp-kafka:latest ``` 此时已经成功完成了基于Docker环境下Kafka的基本搭建流程。如果想要进一步探索更多高级特性比如安全性增强,则可以根据具体需求调整相应配置选项。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北冥牧之

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

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

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

打赏作者

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

抵扣说明:

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

余额充值