1、下载镜像
这里使用了wurstmeister/kafka和wurstmeister/zookeeper这两个版本的镜像
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
在命令中运行docker images验证两个镜像已经安装完毕
docker pull wurstmeister/kafka:2.11-0.11.0.3
2.启动
启动zookeeper容器
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
https://hub.docker.com/r/wurstmeister/kafka
启动kafka容器
docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_BROKER_ID=1 --env KAFKA_ADVERTISED_HOST_NAME=172.18.1.51 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka:latest
172.18.1.86 改为宿主机器的IP地址,如果不这么设置,可能会导致在别的机器上访问不到kafka。
- 测试kafka
进入kafka容器的命令行
运行 docker ps,找到kafka的 CONTAINER ID,
运行 docker exec -it ${CONTAINER ID} /bin/bash,进入kafka容器。
进入kafka默认目录 /opt/kafka_2.11-0.10.1.0
参考地址:https://blog.csdn.net/lblblblblzdx/article/details/80548294
cd /opt/kafka/bin
创建topic
./kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka
查看已创建列表
./kafka-topics.sh --zookeeper zookeeper:2181 -list
查看描述
./kafka-topics.sh --zookeeper zookeeper:2181 --describe --topic zipkin
删除topic
./kafka-topics.sh --zookeeper zookeeper:2181 --delete --topic zipkin
发送消息
./kafka-console-producer.sh --broker-list 172.18.1.51:9092 --topic mykafka
消费消息
./kafka-console-consumer.sh --bootstrap-server 172.18.1.51:9092 --topic zipkin --from-beginning
查看 某个 topic 的 消息堆积量
bash-4.4# ./kafka-run-class.sh kafka.tools.GetOffsetShell --topic zipkin --time -1 --broker-list 172.18.1.51:9092
查看现有索引
curl ‘localhost:9200/_cat/indices?v’