提要

在虚拟机(centos9)中用docker部署并启动kafka后,可以在命令窗口来操作kafka,但是外界却连不上。

方案

1、先启动docker,并在docker中启动kafka
2、复制server.properties到宿主机
3、修改文件
4、重启kafka

细节

1、启动docker

systemctl start docker

启动kafka容器

docker run -p 9092:9092 apache/kafka:3.7.0

这个时候kafka就已经启动起来了,但是外界连接不上,比如用IDEA中的插件

在这里插入图片描述
2、找到docker中kafka的server.properties文件并复制到本地
查看容器ID

docker run -p 9092:9092 apache/kafka:3.7.0

版本号修改为你的。

docker exec -it 容器id /bin/bash 

找到你的server.properties,一般在/etc/kafka/docker/server.properties(docker容器中)
复制到宿主机中

docker cp 容器ID:/etc/kafka/docker/server.properties /opt/kafka/docker

3、修改文件内容,修改listeners(端口号前加0.0.0.0)和advertised.listeners(端口号中加宿主机ip)

vim server.properties

在这里插入图片描述
4、重启kafka
用修改后的配置文件映射启动。

docker run  --volume /opt/kafka/docker:/mnt/shared/config apache/kafka:3.7.0

在这里插入图片描述

这里有个小问题,有可能由于docker网络原因依旧连不上。
那就直接让docker使用宿主机的网络

docker run --network host --volume /opt/kafka/docker:/mnt/shared/config apache/kafka:3.7.0

到这里外部就能够连接啦。

总结

修改配置文件,文件映射,网络问题。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐