docker里面启动kafka并做端口映射,容器外无法连接,问题解决记录

时间:2024-05-21 21:40:59

最近研究Docker使用过程中,恰好遇上另一个需求要搭建一个kafka服务器。于是就像尝试把kafka打成docker容器。

配置成功在容器内部用生产者和消费者shell脚本试了一下,发现功能是正常的,容器外使用java端和使用shell脚本去调用一直网络连接不同。当时觉得很奇怪 端口映射 -p 2181:2181 -p 9092 9092都有映射,而且telnet也是可以通。

 

网上搜了一下问题,只找到一条一样提问并没有提及问题解决方案。很多文章都是关于用第三方的kafka镜像做的容器。

尝试了几种方案后,想到估计跟zookeeper有关。由于对kafka,zookeeper,docker容器原理并不了解,排查问题就变得更难了。

 用zk 之类看了一**册信息,发现了问题

bin/zookeeper-shell.sh localhost:2181 <<< "get /brokers/ids/0"

docker里面启动kafka并做端口映射,容器外无法连接,问题解决记录

发现了 PLAINTEXT 里面注册的域名很诡异。发现这个是docker容器的id!!

于是在宿主机把这个id加了个host 对应127.0.0.1 问题就解决了。

 

参考相关文章,这个注册地址是可以自定的。接下去打算试验一下。

 

参考链接资料:

kafka安装攻略 http://kafka.apache.org/quickstart

相关解决:https://blog.****.net/hutonm/article/details/78624409