我有一个要求,我需要设置Kafka本地与主题已经在那里的容器 ladoop/fast-data-dev
感谢你这么做
我是怎么做的-
docker run -d --name landoopkafka -p 2181:2181 -p 3030:3030 -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 9092:9092 -e ADV_HOST=localhost landoop/fast-data-dev
在运行这个命令之后,我的容器就开始运行了。
现在我进入这个容器内的bash,就像docker-exec-it landopkafka bash一样
并使用以下命令创建主题
kafka-topics --zookeeper localhost:2181 --create --topic hello_topic --partitions 1 --replication-factor 1
我的主题已创建。
但我的要求是,我需要有一个docker文件将主题创建,我只需要运行它。
或
我需要运行的docker compose文件
伙计们,我需要你们的帮助,因为我对docker和kafka绝对是新手
3条答案
按热度按时间pkmbmrz71#
我也必须这么做!如果我不想使用wurstmeister图像呢?我决定制作一个自定义脚本来完成这项工作,并在一个单独的容器中运行这个脚本。
存储库
https://github.com/yan-khonski-it/kafka-compose
注意,它将与使用zookeeper的kafka版本一起工作。Zookeeper是Kafka的必备品吗?
从Kafka开始你所有的主题和主题-
docker-compose up -d
.实施细节。
docker-compose.yml公司
然后我有一个目录Kafka主题创造者。这里,我有三个文件
create-kafka-topics.sh
,Dockerfile
,README.md
.dockerfile文件
创建-kafka-topics.sh
readme.md-让其他人知道如何使用它。总是记录你的东西-好建议。
如何检查主题是否已创建。
一种解决方案是检查
kafka-topics-creator
容器。docker logs kafka-topics-creator
应该打印u3r8eeie2#
你可以像这样创建一个docker compose文件。。。
把你的主题放在那里然后跑
docker-compose up
yb3bgrhw3#
相反,您应该尝试使用支持环境变量的wurstmeister/kafka映像在容器启动期间创建主题。
当然,landoop容器有很多其他有用的东西,但是听起来你只想要kafka,不想在编辑任何dockerfiles上乱来
另一种解决方案是在kafka之后启动第二个容器,该容器运行create脚本,然后停止自身