前提
安装好docker环境,安转好docker-compose
curl -L https://github.com/docker/compose/releases/download/1.6.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
1、下载镜像
这里使用了wurstmeister/kafka和wurstmeister/zookeeper这两个版本的镜像
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
在命令中运行docker images验证两个镜像已经安装完毕。
2、启动
1、启动zookeeper
docker run -d --name zookeeper -p 2181 -t wurstmeister/zookeeper
2、启动kafka
docker run -d --name kafka_002 --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env
ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka:latest
可以通过docker ps查看启动状态
3、验证环境
- 执行Docker ps,找到kafka的Container ID,进入容器内部:
docker exec -it ${CONTAINER ID} /bin/bash
// ${CONTAINER ID}部分根据实际情况进行
进入到kafka默认目录
cd /opt/kafka/bin
下面就是跟一般的kafka一样了
- 创建一个主题:
kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafkatest
mykafkatest为topic名
- 运行一个消息生产者
指定topic为刚刚创建的主题,往里面加数据
kafka-console-producer.sh --broker-list localhost:9092 --topic mykafkatest
- 运行一个消费者
用ssh登录服务器,指定同样的主题
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafkatest --from-beginning
这时在生产者输入测试消息,在消费者就可以接收消息了
注意: 0.90版本之后启动消费者的方法: bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
否则报错:consumer zookeeper is not a recognized option
如图: