run kafka on docker
最近想試試kafka,不過在docker hub 上的方法是使用docker-compose,我的本地環境中沒有compose,所以我用docker最原始的方式啟動了鏡像,并記錄了下來。
kafka分布式實現是依靠zookeeper來實現的,所以在啟動kafka之前,確保你已經啟動了zookeeper。
執行sudo docker images 先查看是否有有kafka 和 zookeeper的鏡像,如果沒有則拉取對應的鏡像
sudo docker pull wurstmeister/kafka:2.11-2.0.0
sudo docker pull zookeeper:3.4
- 配置并啟動一個名為zookeeper-test的zookeeper容器:
sudo docker run -d --name zookeeper-test \
--restart always \
-p 2181:2181 \
-p 2888:2888 \
-p 3888:3888 \
zookeeper:3.4
執行以下命令應該能夠看到一個名為zookeeper-test的容器正在運行
sudo docker ps
- 配置并啟動一個名為kafka-test的kafka容器:
sudo docker run -d --name kafka-test \
-e HOST_IP=localhost \
-e KAFKA_ADVERTISED_PORT=9092 \
-e KAFKA_BROKER_ID=1 \
-e ZK=zookeeper-test \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper-test:2181 \
-e KAFKA_ADVERTISED_HOST_NAME=localhost \
-p 9092:9092 \
--link zookeeper-test:zookeeper-test \
wurstmeister/kafka:2.11-2.0.0
執行以下命令應該能夠看到一個名為kafka-test的容器正在運行
sudo docker ps
- 測試是否都已經啟動好
nc -vz localhost 2181 #zookeeper Connection to localhost 2181 port [tcp/*] succeeded!
nc -vz localhost 9092 #kafka Connection to localhost 9092 port [tcp/*] succeeded!
如果顯示success,類似于注釋中的內容說明容器已經啟動好了。