1嗦随、下載鏡像
> $ docker pull wurstmeister/zookeeper
> $ docker pull wurstmeister/kafka
在命令行中等待兩個鏡像下載完成搭盾,然后驗證鏡像是否存在
> $ docker images
REPOSITORY? ? ? ? ? ? ? ? ? ? TAG? ? ? ? ? ? ? ? ? ? ? ? IMAGE ID? ? ? ? ? ? CREATED? ? ? ? ? ? SIZE
wurstmeister/kafka? ? ? ? ? ? latest? ? ? ? ? ? ? ? ? ? ? c364cbed5b86? ? ? ? 3 weeks ago? ? ? ? 421MB
wurstmeister/zookeeper? ? ? ? latest? ? ? ? ? ? ? ? ? ? ? 3f43f72cb283? ? ? ? 3 months ago? ? ? ? 510MB
2、啟動kafka
(1)首先啟動zookeeper
> $ docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
b25e225ef2c4f83bb88724b88d4c3097f471e6c93e8fc7ac691017882d733668
(2)再啟動kafka
> $ docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=192.168.44.158 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka:latest
0fd8281b5254b5be9e43209431107f189fa834165ad72404d5511a496d90694c
可以通過通過下面命令來查看kafka是否啟動
> $ docker ps -a
CONTAINER ID? ? ? ? IMAGE? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? COMMAND? ? ? ? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NAMES
0fd8281b5254? ? ? ? wurstmeister/kafka:latest? ? ? ? ? ? ? "start-kafka.sh"? ? ? ? 2 hours ago? ? ? ? Up 2 hours? ? ? ? ? ? ? 0.0.0.0:9092->9092/tcp? ? ? ? ? ? ? ? ? ? ? ? ? ? ? kafka
b25e225ef2c4? ? ? ? wurstmeister/zookeeper? ? ? ? ? ? ? ? "/bin/sh -c '/usr/sb…"? 2 hours ago? ? ? ? Up 2 hours? ? ? ? ? ? ? 22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp? zookeeper
3迅皇、測試發(fā)送消息
(1)在終端輸入container ID春宣,進入容器,如下:
? > $ docker exec -it 0fd8281b5254 /bin/bash
? > bash-4.4#
? (2)進入kafka默認目錄
> bash-4.4# cd /opt/kafka_2.12-2.2.0/
> bash-4.4# ls
LICENSE? ? NOTICE? ? bin? ? ? ? config? ? libs? ? ? logs? ? ? site-docs
(3)在下面就和kafka的功能一樣疚颊,首先創(chuàng)建主題(mykafka)
? ? > bash-4.4# bin/kafka-console-producer.sh --broker-list 192.168.44.158:9092 --topic mykafka
? ? ? Created topic mykafka.
(4)查看我創(chuàng)建主題
? ? > bash-4.4# bin/kafka-topics.sh --list --zookeeper 192.168.44.158:2181
? ? ? ? mykafka
? (5) 發(fā)送消息
? 首先在第一個終端輸入下面命令 ,等待輸入
? ? ? ? ? ? > bash-4.4# bin/kafka-console-producer.sh --broker-list 192.168.44.158:9092 --topic mykafka
? ? ? ? ? ? >
其次,在第二個終端同樣進入kafka的后臺信认,等待接受消息
? ? ? ? ? > bash-4.4# bin/kafka-console-consumer.sh --bootstrap-server 192.168.44.158:9092 --topic mykafka
在第一終端輸入 this is a message
? ? ? ? ? > bash-4.4#? bin/kafka-console-producer.sh --broker-list 192.168.44.158:9092 --topic mykafka
? ? ? ? ? >this is a message
第二終端展示
? ? ? ? ? > bash-4.4# kafka-console-consumer.sh --bootstrap-server 192.168.44.158:9092 --topic mykafka
? ? ? ? ? > this is a message
本文參考:http://blog.csdn.net/snowcity1231/article/details/54946857