基於docker環境搭建kafka集群(單機版)


1.Docker下查看是否有kafka的鏡像

 1 docker images |grep kafka

2.拉取kafka鏡像(如果沒有kafka的鏡像)
2.1.拉取zookeeper鏡像

            在Linux下查看是否有zookeeper的鏡像

 1 docker images | grep zookeeper

              如果沒有 zookeeper 鏡像,則拉去zookeeper鏡像

 1 docker pull wurstmeister/zookeeper
            如果拉取報錯:

Error response from daemon: Get https://registry-1.docker.io/v2/wurstmeister/zookeeper/manifests/latest: Get https://auth.docker.io/token?scope=repository%3Awurstmeister%2Fzookeeper%3Apull&service=registry.docker.io: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
             則需要提前去查找一下鏡像:

 1 docker search wurstmeister/zookeeper
            再執行
 1 docker pull wurstmeister/zookeeper
             就會成功。

2.2.拉取 kafka鏡像

 1 docker pull wurstmeister/kafka
            如果拉取報錯:

 1 Error response from daemon: Get https://registry-1.docker.io/v2/wurstmeister/kafka/manifests/latest: Get https://auth.docker.io/token?scope=repository%3Awurstmeister%2Fkafka%3Apull&service=registry.docker.io: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
            則同理去查詢一次鏡像:

 1 docker search wurstmeister/kafka
            再執行
 1 docker pull wurstmeister/kafka
            就會成功。

3.查看是否成功拉取了zookeeper和kafka的鏡像

 1 docker images
            如下圖

4.啟動zookeeper和kafka的鏡像

4.1.啟動zookeeper鏡像

 1 docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper


4.2.啟動kafka鏡像

           (切記 192.168.101.139是我虛擬機ip,各位需要更換為自己的kafka鏡像所在主機的ip)

 1 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

4.3.查看兩個鏡像是否啟動成功

 1 docker ps

5.測試kafka(生產/消費)消息
5.1進入容器內部

            查看kafka的 CONTAINER ID :

 1 docker ps|grep kafka

            假設獲取到的ID為:ba2540992d9e

           使用ID進入容器:

 1 docker exec -it ba2540992d9e /bin/bash

5.2測試消息發送
            在容器命令界面(具體進入/opt/kafkaxxxx 要ls一下 查看自己拉取的哪個版本的鏡像產生的容器):

 1 cd /opt/kafka_2.12-2.1.0/

            創建一個主題名為netmusic:

 1 bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic netmusic

            運行一個生產者:

 1 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic netmusic

             在另一個窗口打開容器命令窗口,運行一個消費者:172.17.0.3 是 kafka容器的ip。

            可以通過進入kafka容器的命令窗口(docker exec -it ba2540992d9e /bin/bash),使用ifconfig查看ip。

 1 bin/kafka-console-consumer.sh --bootstrap-server 172.17.0.3:9092 --topic netmusic


在生產者的窗口生產消息,就可以在消費者窗口消費消息看到消息。



歸類 :自動化運維



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM