执行 docker search zookeeper 会查询出镜像库的列表,选择下载STARTS 最多的
执行 docker pull zookeeper 会把名字为“zookeeper” 的镜像拉下来
Zookeeper 启动
docker run --name zookeeper --restart always -d -p 2181:2181 zookeeper
--name 启动容器名称为 zookeeper
--restart always docker 重启时,zookeeper容器 会自动重启
--d 后台线程启动
--p 左边为容器外宿主机端口右边为容器内部zookeeper启动端口
运行之后 能通过 docker ps 看到正在运行的容器
同样搜索kafka 镜像列表
执行 docker search kafka
同样选择STARTS最高的镜像
执行 docker pull wurstmeister/kafka
kafka 启动
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.123.52:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.123.52:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
链接的地址还有 监听的地址 一定要选宿主机地址,不然会启动失败
反例:KAFKA_ZOOKEEPER_CONNECT 配置了 localhost 而不是宿主机的ip地址
查看容器的相关日志
docker logs -f -t --tail 200 039a0ff239ef37394c25294b2584a55eb5cb2d644ffe667433532be9af1fcf51(容器id)
会看到 kafka 启动 连接不上zookeeper 导致kafka 启动失败
改成上面的启动信息之后正常启动 信息如下
docker exec -it kafka /bin/bash 进入kafka 容器内部
进入kafka bin目录 cd /opt/kafka_2.12-2.3.0/
启动消费者脚本,订阅 mykafka 主题
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafka --from-beginning
注解:
--from-beginning 从头开始消费
使用测试工具 发送数据
{"datas":[{"channel":"","metric":"temperature","producer":"ijinus","sn":"IJA0101-00002245","time":"1543207156000","value":"80"}],"ver":"1.0"}
能看到消费者订阅到 相关的信息