1.拉取镜像
docker pull wurstmeister/kafka:2.12-2.1.0
2.启动kafka镜像生成容器
docker run -d --name kafka --restart=always -p 9092:9092 -e KAFKA_ZOOKEEPER_CONNECT=10.18.0.39:2181 -e KAFKA_BROKER_ID=0 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.18.0.39:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -t wurstmeister/kafka:2.12-2.1.0
-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
-e KAFKA_ZOOKEEPER_CONNECT=10.18.0.39:2181 配置zookeeper管理kafka的路径10.18.0.39:2181
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.18.0.39:9092 把kafka的地址端口注册给zookeeper
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间
参数host.name,port,advertised.host.name,advertised.port在最新的官方文档标注为deprecated,应该为以下配置
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://10.18.0.39:9092
3.测试kafka
进入kafka容器的命令行
docker exec -it kafka /bin/bash
cd /opt/kafka_2.12-2.1.0/bin
创建topic
kafka-topics.sh --create --zookeeper 10.18.0.39:2181 --replication-factor 1 --partitions 1 --topic zipkin
//查看
kafka-topics.sh --describe --zookeeper 10.18.0.39:2181 --topic zipkin
//删除
kafka-topics.sh --delete --zookeeper 192.168.1.129:2181 --topic sentinel_metric_dev