docker 安装 kafka单节点

该文详细介绍了如何在Linux环境下配置Docker容器,包括桥接网卡模式下运行Zookeeper和Kafka,设置环境变量,以及通过自定义网络模式简化容器间通信。还提供了Kafka的命令行操作,如创建、删除和描述主题。

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

linux 虚拟机网卡配置  参考  Linux 虚拟机配置桥接网卡_大大蚊子的博客-CSDN博客

linux 安装docker 参考 ​​​​​​​Linux 安装docker engine_大大蚊子的博客-CSDN博客_docker engine

docker 常用命令参考 ​​​​​​​docker 常用命令及参数_大大蚊子的博客-CSDN博客

宿主机网络模式

运行zookeeper容器

参数--name 容器名称 

参数-d 后台运行

参数-p 端口映射

docker镜像 bitnami/zookeeper:latest

docker run -d --name zookeeper \
	-p 2181:2181 \
    -e ALLOW_ANONYMOUS_LOGIN=yes \
    bitnami/zookeeper:latest

 运行kafka容器

参数--name 容器名称

参数-d 后台运行

参数-p 端口映射

参数-e 环境变量

docker镜像bitnami/kafka:latest

docker run -d --name kafka \
    -p 9092:9092 \
    -e ALLOW_PLAINTEXT_LISTENER=yes \
    -e KAFKA_CFG_ZOOKEEPER_CONNECT=192.168.1.102:2181 \
    -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.102:9092 \
    bitnami/kafka:latest

 参数-it 交互式进入容器

 参数kafka 容器名称

docker exec -it kafka bash

 测试kafka命令,需要进入容器运行

/opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.1.102:9092 --list 
/opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.1.102:9092 --create --topic test --replication-factor 1 --partitions 1
/opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.1.102:9092 --delete --topic test,xxx,xxxxx
/opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.1.102:9092 --alter --topic test --partitions 2
/opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.1.102:9092 --describe --topic test

自定义网络模式

创建自定义网桥网络

docker network create kafkanet

查看网络

docker network ls

 运行zookeeper容器

参数--name 容器名称 

参数-d 后台运行

参数--network 指定网络    区别自定义网络可以通过容器名称进行访问

docker镜像 bitnami/zookeeper:latest

docker run -d --name zookeeper \
    --network kafkanet \
    -e ALLOW_ANONYMOUS_LOGIN=yes \
    bitnami/zookeeper:latest

 运行kafka容器

参数--name 容器名称

参数-d 后台运行

参数-p 端口映射

参数--network 指定网络    直接使用zookeeper:2181找到zk 不需要写ip

参数-e 环境变量

docker镜像bitnami/kafka:latest

docker run -d --name kafka \
    --network kafkanet \
    -p 9092:9092 \
    -e ALLOW_PLAINTEXT_LISTENER=yes \
    -e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 \
    -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.102:9092 \
    bitnami/kafka:latest

 参数-it 交互式进入容器

 参数kafka 容器名称

docker exec -it kafka bash

 测试kafka命令,需要进入容器运行

/opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.1.102:9092 --list 
/opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.1.102:9092 --create --topic test --replication-factor 1 --partitions 1
/opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.1.102:9092 --delete --topic test,xxx,xxxxx
/opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.1.102:9092 --alter --topic test --partitions 2
/opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.1.102:9092 --describe --topic test

<think>嗯,用户想用Docker搭建Kafka单节点环境,我得先理清楚步骤。首先,Kafka依赖Zookeeper,所以可能需要先启动Zookeeper容器。不过有些镜像可能已经集成,但根据引用里的信息,比如引用3用的是bitnami/kafka,并且指定了Zookeeper的连接地址,看起来需要单独启动Zookeeper。 用户提供的引用3提到使用bitnami/kafka镜像,并且通过环境变量配置Zookeeper的连接。那应该先创建一个网络,让Kafka和Zookeeper在同一个Docker网络中,这样它们可以通过服务名通信。比如引用3里的命令用了--network kafkanet,而Zookeeper可能也在同一个网络里,所以KAFKA_CFG_ZOOKEEPER_CONNECT设为zookeeper:2181,这里的zookeeper是服务名。 所以步骤大概是:1. 创建Docker网络;2. 启动Zookeeper容器;3. 启动Kafka容器,并连接到同一网络,配置环境变量指向Zookeeper。另外,用户提供的引用3中的命令还设置了ALLOW_PLAINTEXT_LISTENER为yes,允许明文监听器,以及ADVERTISED_LISTENERS配置为主机IP和端口,这样外部客户端才能正确连接。 需要检查用户给的引用内容,确认是否有单节点的最佳实践。引用3中的例子是单节点,所以可以按照那个来。另外,用户可能还需要验证Kafka是否正常运行,比如进入容器执行命令创建主题或者生产消费消息。这部分需要指导用户如何验证安装是否成功。 另外,用户可能遇到的问题包括网络配置不正确,导致Kafka无法连接Zookeeper,或者ADVERTISED_LISTENERS设置错误导致外部无法访问。要提醒用户注意替换IP地址为实际的主机IP,并确保端口开放。 最后,根据用户提供的引用,引用2里提到了kafka-ui等工具,可能用户后续需要监控或管理界面,可以建议他们如何部署这些UI工具,但当前问题主要是单节点搭建,所以放在相关问题里比较合适。</think>### 使用 Docker 搭建 Kafka 单节点教程 #### 1. 创建 Docker 网络(可选但推荐) 为 Kafka 和 Zookeeper 创建专用网络,确保容器间通信: ```bash docker network create kafka-net ``` #### 2. 启动 Zookeeper 容器 Kafka 依赖 Zookeeper 进行元数据管理,使用以下命令启动单节点 Zookeeper: ```bash docker run -d \ --name zookeeper \ --network kafka-net \ -p 2181:2181 \ -e ALLOW_ANONYMOUS_LOGIN=yes \ bitnami/zookeeper:latest ``` *参数说明*:`--network` 指定容器网络,`-e` 允许匿名访问[^3]。 #### 3. 启动 Kafka 容器 ```bash docker run -d \ --name kafka \ --network kafka-net \ -p 9092:9092 \ -e ALLOW_PLAINTEXT_LISTENER=yes \ -e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 \ -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://{主机IP}:9092 \ bitnami/kafka:latest ``` *关键配置*: - `KAFKA_CFG_ZOOKEEPER_CONNECT`:指向 Zookeeper 容器地址 - `KAFKA_CFG_ADVERTISED_LISTENERS`:需替换 `{主机IP}` 为宿主机实际 IP,用于外部客户端访问 #### 4. 验证服务状态 进入 Kafka 容器执行测试命令: ```bash docker exec -it kafka bash kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1 kafka-console-producer.sh --topic test --bootstrap-server localhost:9092 kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning ``` #### 5. 可选管理界面部署 参考引用[2],可快速部署可视化工具: ```bash # Kafka-UI docker run -d --name kafka-ui -p 8080:8080 \ -e KAFKA_CLUSTERS_0_NAME=local \ -e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092 \ provectuslabs/kafka-ui ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大大蚊子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值