无法在openwhisk设置中列出kafka主题

安装细节:我在我的本地ubuntu(16.04)vm上设置了openwhisk。 在这个设置中,kafka运行在另一个docker中的一个docker和zookeeper中。

我使用cmd连接到kafka docker

sudo docker exec -it <container id> sh 

一旦连接,我执行以下命令来获取主题列表

 bin/kafka-topics.sh --list --zookeeper localhost:2181 

这给了我一个例外

 Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 7203; nested exception is: java.net.BindException: Address already in use 

我无法理解为什么它试图使用7203端口?

dockerps输出

 83eba3961247 ches/kafka:0.10.0.1 "/start.sh" 11 days ago Up 23 hours 7203/tcp, 0.0.0.0:9092->9092/tcp kafka 947fa689a7ef zookeeper:3.4 "/docker- entrypoin..." 11 days ago Up 23 hours 2888/tcp, 0.0.0.0:2181->2181/tcp, 3888/tcp zookeeper 

Kafka容器OpenWhisk默认使用设置JMX_PORT 。 这是你看到的7203端口。 要使脚本正常工作,您需要取消设置该环境设置:

 unset JMX_PORT; bin/kafka-topics.sh --list --zookeeper localhost:2181 

请注意, localhost不是您的zookeeper实例的有效地址,因为它指的是当前容器(不是Zookeeper)的本地主机。 如果你用虚拟机的外部IP或zookeeper容器的IP(通过docker inspect zookeeper --format {{.NetworkSettings.Networks.bridge.IPAddress}}获得它),你的主题应该被列出来。