- 如果沒有 zookeeper 鏡像,則拉去zookeeper鏡像
docker pull wurstmeister/zookeeper
- 拉取 kafka鏡像
docker pull wurstmeister/kafka
- 啟動zookeeper鏡像
docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper
- 啟動kafka鏡像(切記 192.168.101.139是我虛拟機ip,各位需要更換為自己的kafka鏡像所在主機的ip)
docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=192.168.101.139 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka
- 進入容器内部
docker exec -it kafka /bin/bash
- 測試消息發送
在容器指令界面(具體進入/opt/kafkaxxxx 要ls一下 檢視自己拉取的哪個版本的鏡像産生的容器)cd /opt/kafka_2.12-2.1.0/
- 建立一個主題名為netmusic:
bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic netmusic
- 運作一個生産者:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic netmusic
9.在另一個視窗打開容器指令視窗,運作一個消費者:172.17.0.3 是 kafka容器的ip,可以通過進入kafka容器的指令視窗(docker exec -it ba2540992d9e /bin/bash),使用ifconfig檢視ip
bin/kafka-console-consumer.sh --bootstrap-server 172.17.0.3:9092 --topic netmusic
- 在生産者的視窗生産消息,就可以在消費者視窗消費消息看到消息。