我如何将Kafka消息传送到Docker容器中?

问题描述 投票:0回答:1

我有一台目前托管Zookeeper和kafka服务器的计算机。

我在同一台计算机上也有一个脚本,该脚本使用发送到本地kafka服务器的消息。如果我直接运行它,消费者脚本将按预期工作。

我想从Docker容器中运行使用者脚本。

我已经成功构建并运行了一个运行使用者脚本的容器,但它会永远等待kafka消息。

如何使kafka消息重定向到容器中?这是将Zookeeper和kafka服务器直接托管在容器中的唯一方法吗?

docker apache-kafka docker-compose
1个回答
0
投票

默认情况下,使用者脚本的容器与主机网络堆栈隔离。 Kafka使用者需要能够查看在您的主机上运行的代理和Zookeeper实例。

这里讨论了许多解决此问题的方法:Forward host port to docker container

一种简单的短期解决方案通过传入--network=host在主机网络上运行容器,允许使用者容器与主机共享名称空间(例如,您可以使用'localhost:9092')。请注意,这仅适用于Linux主机。

关于使用主机网络的Docker文档:https://docs.docker.com/network/host/

© www.soinside.com 2019 - 2024. All rights reserved.