【问题标题】:Kafka on Docker cannot connect from other containerDocker 上的 Kafka 无法从其他容器连接
【发布时间】:2018-07-03 17:12:40
【问题描述】:

您好,我正在使用 Spotify/Kafka 并正在运行它

docker run —name ka -p 9092:9092 -p 2181:2181 —env ADVERTISED_HOST=localhost —env ADVERTISED_PORT 2181 —net mynet spotify/kafka

我确保我使用同一个网络运行我的第二个容器,并且我可以使用 ka.mynet ping Kafka 容器

同样在第二个容器中我下载了 kafka 和它的 shell 脚本,我可以做一个

./kafka-topics.sh —zookeeper ka.mynet —list 并查看“测试”主题

现在任何产生或消费的尝试都会吐出错误。制片人抱怨与找不到领导有关。

其他谷歌搜索让我相信它与广告主机有关。

【问题讨论】:

  • FWIW,有关最新的 Kafka 版本,请参阅 docs.confluent.io/current/installation/docker/docs/…
  • 你的卡夫卡出现之前你等了吗?可以分享 dockerfile 或者 compose 文件吗?
  • 嘿@cricket_007 我想使用 apache kafka 和你链接的 doco 谈论 Windows 上的 docker-machine 我相信不再需要,现在有一个“docker for windows”选项,但谢谢等待您的回复。
  • @ShankarShastri 我在这里使用这个 dockerfile:github.com/spotify/docker-kafka
  • 同样,Spotify Kafka 不运行最新的 Kafka。这是我的主要观点。不,Docker 机器仍然存在,建议在 Linux 机器之外使用,因为 net=host 选项在其他地方不起作用。但是,这并不能阻止您尝试github.com/confluentinc/cp-docker-images/tree/master/examples 运行这些容器

标签: docker apache-kafka


【解决方案1】:

好吧,似乎让它工作的唯一方法是将我机器的当前 IP 地址分配为 ADVERTISED_HOST 环境变量。

所以如果我的机器的 IP 是 192.168.1.11 那么:

docker run —name ka -p 9092:9092 -p 2181:2181 —env ADVERTISED_HOST=192.168.1.11 —env ADVERTISED_PORT=9092 —net mynet spotify/kafka

【讨论】:

  • 你不需要硬编码 ADVERTISED_HOST,你也可以试试这个:` ADVERTISED_HOST=docker-machine ip `docker-machine active` `
  • docker run -p 2181:2181 -p 9092:9092 --env ADVERTISED_HOST=docker-machine ip `docker-machine active` --env ADVERTISED_PORT=9092 spotify/kafka
  • @Shankar OP 在 cmets 中说他们没有使用 Docker 机器
猜你喜欢
  • 2020-02-09
  • 2021-10-28
  • 1970-01-01
  • 2020-01-30
  • 2021-05-22
  • 2020-06-24
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
相关资源
最近更新 更多