docker安装kafka
1.docker search kafka
找到kafka合适的image,这里选择wurstmeister的
2.拉取镜像
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
3.启动zookeeper容器
mkdir -p /home/zookeeper/data
mkdir -p /home/kafka/logs
docker run -d --name zookeeper -p 2181:2181 --volume /home/zookeeper/data:/opt/zookeeper-3.4.13/data -t wurstmeister/zookeeper
启动kafka容器
docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=192.168.244.101 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime --volume /home/kafka/logs:/kafka/kafka-logs-c75b795f998b wurstmeister/kafka:latest
192.168.244.101 改为宿主机器的IP地址,如果不这么设置,可能会导致在别的机器上访问不到kafka。
4.进入kafka容器
运行命令 docker ps
找到kafka的容器id
docker exec -it ${CONTAINER ID} /bin/bash
${CONTAINER ID}为你的kafka容器id
cd /opt/kafka
进入kafka默认目录
5.测试kafka
创建主题
bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka
运行消息生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka
运行生产者以后,命令行便可以一直输入数据
开启另一个界面进入kafka容器
查看所有的topic列表
bin/kafka-topics.sh --list --zookeeper zookeeper:2181
运行一个消费者,指定同样的主题
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafka --from-beginning