准备工作
需要提前安装好docker,以及docker-compose
version: '3'
services:
zookeeper:
image: wurstmeister/zookeeper
container_name: zookeeper
# always restart
restart: always
ports:
- 2181:2181
kafka:
image: wurstmeister/kafka
container_name: kafka
ports:
- 9092:9092
# host ip
environment:
KAFKA_ADVERTISED_HOST_NAME: kafka
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
# always restart
restart: always
volumes:
- ./:/var/run/
其中./:/var/run/
是一个很重要的参数,使得再容器内可以使用docker ps、docker port等命令,得到的结果和在宿主机上执行的是一样的。
启动服务
前台:docker-compose up
后台:docker-compose up -d
验证
- 通过容器名称进入到kafka容器中:
docker exec -it kafka /bin/bash
- 创建一个名称为test的topic:
--create --topic test \
--zookeeper zookeeper:2181 --replication-factor 1 \
--partitions 1
- 查看刚刚创建的topic信息:
--zookeeper zookeeper:2181 \
--describe --topic test
- 打开生产者发送若干条消息:
--topic=test \
--broker-list kafka:9092
- 开发消费者接收消息:
\
--bootstrap-server kafka:9092 \
--from-beginning --topic test
- 如果可以成功接收到消息,则说明kafka已经启动成功了,可以进行本地开发以及调试工作了。