kafka zookeeper docker容器互聯

衣舞晨風發表於2017-05-06

1、build dockerfile
kafka dockerfile
zookeeper dockerfile
2、映象啟動

//-h 指定hostname
sudo docker run -itd --name zookeeper -h zookeeper -p 2181:2181 jiankunking/zookeeper:3.4.6
//-h 指定hostname 
//--link 容器可以通過link連結進行訪問,這樣就不需要指定ip了
sudo docker run -itd --name kafka -h kafka -p 9092:9092 --link zookeeper jiankunking/kafka:0.8.2.2 

3、檢視kafka、zookeeper埠是否已被監聽

//kafka
lsof -i:9092
//zookeeper
lsof -i:2181

這裡寫圖片描述

也可以進入kafka、zookeeper容器檢視相應埠是否已經被監聽。

4、啟動kafka

//進入容器
sudo docker  exec -it d1361270a323 /bin/bash
//切換目錄
cd /opt/kafka/kafka_2.11-0.8.2.2/bin/
//建立topic
./kafka-topics.sh --create --topic test1 --zookeeper zookeeper:2181 --partitions 3 --replication-factor 1

如果提示:

/opt/kafka/kafka_2.11-0.8.2.2/bin/kafka-run-class.sh: line 155: exec: java: not found

則重新整理配置檔案:

source /root/.bash_profile 

這裡寫圖片描述

//再建立一個topic test2
./kafka-topics.sh --create --topic test2 --zookeeper zookeeper:2181 --partitions 3 --replication-factor 1
Created topic "test2".
//檢視建立的topic資訊
./kafka-topics.sh --zookeeper zookeeper:2181 --describe --topic test1
./kafka-topics.sh --zookeeper zookeeper:2181 --describe --topic test2
//檢視topic列表
./kafka-topics.sh --list --zookeeper zookeeper:2181

這裡寫圖片描述

啟動kafka消費端:

 ./kafka-console-consumer.sh --zookeeper zookeeper:2181 --topic test1 

再一個新的shell視窗,進入容器,啟動kafka producer

./kafka-console-producer.sh --broker-list localhost:9092 --topic test1

啟動後,在kafka producer中輸入內容回車,kafka consumer就會收到了
這裡寫圖片描述

作者:jiankunking 出處:http://blog.csdn.net/jiankunking

相關文章