執行 docker search zookeeper 會查詢出鏡像庫的列表,選擇下載STARTS 最多的docker
執行 docker pull zookeeper 會把名字爲「zookeeper」 的鏡像拉下來bootstrap
Zookeeper 啓動bash
docker run --name zookeeper --restart always -d -p 2181:2181 zookeeper工具
--name 啓動容器名稱爲 zookeeper測試
--restart always docker 重啓時,zookeeper容器 會自動重啓spa
--d 後臺線程啓動線程
--p 左邊爲容器外宿主機端口右邊爲容器內部zookeeper啓動端口3d
運行以後 能經過 docker ps 看到正在運行的容器rest
一樣搜索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"}
能看到消費者訂閱到 相關的信息