我使用以下命令从Wurstmeister Kafka启动了一个docker容器:
docker run -ti --name sender --entrypoint /bin/bash wurstmeister/kafka:latest
然后我使用命令:
docker exec -ti <container_id> bash
进入容器内部。在bash中,我尝试设置一个Kafka生产者来发送消息。 Kafka服务器驻留在云中的虚拟机中,公共地址为192.168.25.21。当我在容器内运行命令时:
/opt/kafka/bin/kafka-console-producer.sh --broker-list 192.168.25.21:9092 --topic test
我在broker-list参数中得到错误.broker-list参数想要一个字符串作为参数,它将192.168.25.21识别为数字。如果我使用另一个服务器的DNS名称它工作正常。但是我希望能够使用前面描述的IP。任何建议?
所以,--entrypoint /bin/bash
应该把你放在一个终端,没有理由再次exec -ti
。
无论如何,根据我的经验,IP应该可以正常工作,但是欢迎你引用--broker-list '192.168.25.21:9092'
。但是,我通常使用字符串的导出环境变量至少三个代理地址,然后使用任何CLI工具,而不是重复复制和粘贴IP或主机
顺便说一句,这里并没有真正看到Docker的需求。如果您不能/不会自己安装Java或Kafka下载,kafkacat
是一个不错的选择