本文是对使用Docker快速搭建Kafka开发环境的补充,跟随教程即可完成搭建,但还有些地方需要注意。
完整的搭建方案如下:
version: '2.1'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 192.168.101.24 # 用ifconfig查询,或直接填写kafka
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "test:1:1"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
KAFKA_ADVERTISED_HOST_NAME
其中KAFKA_ADVERTISED_HOST_NAME要填宿主机的ip,可用ifconfig查询。
比如此处我们查到是192.168.101.24,就填这个。
当然直接写成
KAFKA_ADVERTISED_HOST_NAME: kafka
也可。
自动创建topic
根据github kafka-docker,可以自动创建topic。
Here is an example snippet from docker-compose.yml:
environment:
KAFKA_CREATE_TOPICS: "Topic1:1:3,Topic2:1:1:compact"
Topic 1 will have 1 partition and 3 replicas, Topic 2 will have 1 partition, 1 replica and a cleanup.policy set to compact.
以下代码创建了test话题
environment:
KAFKA_CREATE_TOPICS: "test:1:1"
命令名称自适应
进入容器时的命令,其容器名要记得改成适应自己机器的,比如我在kafka-demo文件夹下,运行的容器名字就是kafka-demo_kafka_1
。你也可以自己docker ps
查容器名字。
rasak@rasak-lee:~/codes/kafka-demo$ docker exec -it kafka-demo_kafka_1 /bin/bash
重启动
在更新了docker-compose.yml后,要docker-compose stop
和docker-compose rm
后,docker-compose up -d
才能生效。直接docker-compose restart
不能更新配置。
其他
解决问题时参考了:
kafka-docker搭建问题解决
次要参考:
网友评论