1 拉取Zookeeper镜像
docker pull wurstmeister/zookeeper
2 运行Zookeeper
docker run --name zookeeper \ --log-driver json-file \ --log-opt max-size=100m \ --log-opt max-file=2 \ -p 2181:2181 \ -v /etc/localtime:/etc/localtime \ -d wurstmeister/zookeeper
3 拉取Kafka镜像
docker pull wurstmeister/kafka
4 运行Kafka
docker run --name kafka \ --log-driver json-file \ --log-opt max-size=100m \ --log-opt max-file=2 \ -p 9092:9092 \ -e KAFKA_BROKER_ID=1 \ -e KAFKA_ZOOKEEPER_CONNECT=192.168.56.102:2181 \ -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.56.102:9092 \ -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \ -v /etc/localtime:/etc/localtime \ -d wurstmeister/kafka
tips:
其中:-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.56.102:9092是部署的kafka的ip(可以被外部访问到)
5 拉取kafka-manager镜像
docker pull docker.io/sheepkiller/kafka-manager
6 运行kafka-manager
docker run --name kafka-manager \ -p 9000:9000 \ -e ZK_HOSTS="192.168.56.102:2181" \ --net=host \ -d sheepkiller/kafka-manager
此时直接访问:
直接访问:http://192.168.56.102:9000 即是kafka的管理页面 命令中各ip均是部署虚拟机的ip地址
如图:
7 kafka常用命令
1 查看所有主题:./kafka-topics.sh --list --bootstrap-server localhost:9092 2 查看主题详情:./kafka-topics.sh --describe --topic test-4 --bootstrap-server localhost:9092 3 查看所有消费者组:./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list 4 查看消费者组详情:./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group appleGroup
通过docker命令进入到容器内容,在/opt/kafka_{version}目录下有对应的命令
8 kafka集群搭建
kafka集群的搭建和单节点搭建大同小异,将kafka的各个节点连接到相同的zookeeper(集群或单节点)
在启动kafka容器时,只需要保证每个broker在集群中的id唯一即可:
tips:broker_id不一样,ip设置成节点ip即可