使用Docker运行Apache/Kafka创建Topic时提示文件未找到的问题
问题原因与解决方案
核心问题:你执行命令时用了相对路径
bin/kafka-topics.sh,但apache/kafka:3.7.0镜像中Kafka的安装目录是/opt/kafka,当前会话的工作目录并非该路径,所以找不到脚本文件。快速解决方法:
- 进入容器后,先切换到Kafka安装目录:
再执行创建主题的命令:cd /opt/kafkabin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092 - 或者直接使用绝对路径执行脚本:
/opt/kafka/bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
- 进入容器后,先切换到Kafka安装目录:
额外注意:
你直接运行apache/kafka:3.7.0镜像的方式存在隐患——Kafka 3.0+默认支持KRaft模式,无需ZooKeeper,但直接启动镜像不会自动完成KRaft的格式化操作,可能导致Kafka服务无法正常运行。正确的启动流程应该是:- 先执行格式化命令:
docker run apache/kafka:3.7.0 /opt/kafka/bin/kafka-storage.sh format -t $(uuidgen) -c /opt/kafka/config/kraft/server.properties - 再启动Kafka服务:
docker run -p 9092:9092 apache/kafka:3.7.0 /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties
- 先执行格式化命令:
内容的提问来源于stack exchange,提问作者Headmaster
相关产品推荐
相关产品推荐

