基于Docker以KRaft模式快速部署Kafka

参考文献

https://kafka.apache.org/37/documentation.html#uses

https://spring.io/projects/spring-kafka#overview


获取Docker镜像

复制代码
docker pull apache/kafka:3.7.1

创建一个目录来存储Kafka的配置文件

复制代码
mkdir -p /home/user/kafka_config

启动Kafka容器

复制代码
docker run -d \
   --name kira-kafka \
   -v /home/user/kafka_config:/opt/kafka/config \
   -p 9092:9092 \
   --user root \
   apache/kafka:3.7.1

cd /var/lib/docker/volumes/kafka_data/_data

创建Kafka的主题

进入Kafka容器

复制代码
docker exec -u root -it kira-kafka bash

找到kafka-topics.sh:在容器中查找脚本路径

复制代码
find / -name kafka-topics.sh

创建主题:根据实际的路径,运行命令

复制代码
/opt/kafka/bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

查看主题

复制代码
/opt/kafka/bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092

然后用kafka-King可视化工具进行连接

进入容器内部改成正确的IP(如果内部IP不正确时)

复制代码
docker exec -u root -it kira-kafka bash

编辑文件

复制代码
vi /opt/kafka/config/server.properties

删除localhost

esc

:wq保存

删除这个

保留这一行,改成我们的虚拟机本机地址而不是localhost

复制代码
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://192.168.88.130:9092

退出容器

重启kafka容器

检查本地挂载目录权限保证它可写

复制代码
ls -ld /home/user/kafka_config

如果目录权限修改不正确,可以使用以下命令修改权限

复制代码
sudo chown -R 1000:1000 /home/user/kafka_config
sudo chmod -R 755 /home/user/kafka_config

修改容器内权限

复制代码
docker exec -u root -it kira-kafka bash
chmod -R 777 /opt/kafka/config

重启容器

复制代码
docker restart kira-kafka

如何验证挂载

进入容器内部

复制代码
docker exec -it kira-kafka bash

检查挂载目录

复制代码
ls /opt/kafka/config
相关推荐
小蒜学长几秒前
基于微信小程序的遇见咖啡店点餐系统设计与实现(代码+数据库+LW)
java·spring boot·后端·微信小程序·咖啡店点餐系统
lisanmengmeng3 分钟前
NRPE 添加命令(三)
java·linux·服务器
Wang's Blog5 分钟前
Java框架 SpringCloud 快速入门: 网关的 CORS 跨域配置
java·开发语言·spring cloud
驭渊的小故事9 分钟前
NC229023 题解:二分答案求解“最大化最小值“问题
java·算法
小蒜学长12 分钟前
基于SSM+VUE的电影售票平台的设计与实现(代码+数据库+LW)
java·vue.js·spring boot·后端·ssm框架·电影售票平台
zmsup14 分钟前
从运维需求到产品能力:OpsArk Agent 的运维智能平台架构设计思路
运维·系统架构·agent·智能体·运维智能平台
bluebonnet2719 分钟前
【docker】容器内映射外部音频驱动
docker·容器·音视频
Wang's Blog25 分钟前
Java框架 SpringCloud 快速入门: Feign 替代 RestTemplate 实现声明式远程调用
java·开发语言·spring cloud
谢亮_vipxieliang26 分钟前
Go 结构体与方法集核心知识点
java·开发语言·golang
EatFan34 分钟前
2026 Java 后端面试风向变了:八股文只是门槛,场景化追问才是淘汰线
java·开发语言·jvm·面试·后端面试·八股文·full gc