从docker集装箱向外部的卡夫卡经纪人发布信息

在我的IDE中,我能够使用一个弹簧启动应用程序,它会向外部kafka代理生成消息(与Kafkaproducer一起)。 但是,一旦我在docker容器中托pipe了我的spring-boot应用程序,我的应用程序就不能再提交给代理。 这是错误消息:

osksupport.LoggingProducerListener: Exception thrown when sending a message with key='null' and payload='....' to topic Category: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms. org.springframework.kafka.core.KafkaProducerException: Failed to send; nested exception is org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms. 

我以前运行docker的是: docker run -p 9001:9001 -d image_name其中9001是我的spring-boot端口,我可以发布到端口,只是一旦我的消息发布,它不会得到外部经纪人。 我想我有一个普遍的概念,那就是Docker容器生活在孤立的土地上,你必须打开/映射这个端口才能访问它(像我的-p 9002:9002),但是它的工作原理是一样的容器? 如果是的话,有人可以告诉我如何运行docker集装箱,以便能够访问外部经纪人(比方说,经纪人的URL是“192.168.1.1:9000”)? 我不认为我现在能够修改代理上的任何东西,但我的假设是,如果我可以通过我的IDE访问,为什么不在docker? 感谢所有的帮助!

这是由于我的IP转发= 0,一旦打开,我可以做出去的请求。