kafka zookeeper docker容器互联

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 docker容器互联_第1张图片

也可以进入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 zookeeper docker容器互联_第2张图片

启动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就会收到了
kafka zookeeper docker容器互联_第3张图片

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

你可能感兴趣的:(Docker)