Docker(Windows版)安裝zookeeper+kafka

近期在對已有項目進行升級維護時時需要還原生產環境中關於kafka數據訂閱的問題,但是又不想在自己電腦上裝一堆東西,所以想到了用Docker安裝kafka用來還原生產環境進行測試。

1.安裝zookeeper

啓動Docker服務,打開CMD窗口或powershell窗口。

搜索zookeeper鏡像

docker search zookeeper

拉取zookeeper鏡像

docker pull wurstmeister/zookeeper

創建並啓動zookeeper容器

docker run -d --name zookeeper -p 2181:2181 wurstmeister/zookeeper

一切看起來很順利,到這裏卻卡殼了,這一步執行始終不成功,找了半天資料才發現是zookeeper默認使用是2181端口被佔用了,佔用者又恰好是Docker所依賴的Hyper-V虛擬化服務。解決辦法看下面了。

1.1 補充-解決2181端口占用問題

由於Hyper-V佔用的2181端口,所以必須將Hyper-V停掉後把2181釋放出來,但是沒了Hyper-V,Dokcer就不能運行了,所以改完還要將Hyper-V啓動。

查看端口占用情況

netsh interface ipv4 show excludedportrange protocol=tcp

禁用Hyper-V服務

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

解除2181端口限制

netsh int ipv4 add excludedportrange protocol=tcp startport=2181 numberofports=1

啓用Hyper-V服務

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

檢查確認端口占用情況

netsh interface ipv4 show excludedportrange protocol=tcp

問題解決,zookeeper容器順利創建並啓動

2.安裝kafka

搜索鏡像kafka

docker search kafka

拉取kafka鏡像

docker pull wurstmeister/kafka

創建並啓動kafka容器,連接到上一步創建的zookeeper

docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env KAFKA_ADVERTISED_PORT=9092 wurstmeister/kafka

kafka容器啓動成功,在Docker的Dashboard中可以看到已啓動的容器。
在這裏插入圖片描述

3.連接zookeeper

安裝客戶端工具kafka-tool,連接zookeeper,創建topic用於測試。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章