天天看點

在Docker上運作Apache Kafka

本文講的是<b>在Docker上運作Apache Kafka,</b>【編者的話】在研究Apache Kafka和Docker時,作者發現Docker是一個非常神奇的技術,它将開發過程簡化的如此完美。又因為有wurstmeister/kafka和wurstmeister/zookeeper這兩個鏡像,運作Apache Kafka和使用Docker是那樣的輕松,還有比這更讓人覺得興奮的事情麼!讓我們完全從安裝、維護機器和軟體中解脫出來。

然後我就想我應該分享這份熱愛,不僅我,所有人都可以從中受益。

你可以在背景或前台獨立于鏡像運作容器。視你的Unix技術而言,也就是一兩個終端的事。這裡就對Apache Kafka和Apache Zookeeper各使用一個終端。我會在另一篇部落格中解釋Apache Zookeeper的作用。

下面是用Docker運作Apache Kafka的步驟,假設你已經裝好了<code>boot2docker</code>和<code>docker</code>。

1,(僅适用Mac OS X和Windows使用者)執行<code>boot2docker up</code>在Mac OS上啟動微型Linux核心。

2,(僅适用Mac OS X和Windows使用者)執行<code>$(boot2docker shellinit)</code>設定好終端,讓<code>docker</code>知道微型Linux核心運作在哪兒(通過<code>boot2docker</code>)。為了設定上面的<code>export</code>,你必須在所有打開的運作Docker終端中重複這一步驟。如果你遇到<code>docker</code>指令的通信問題,記着這一步。

3,執行<code>docker ps</code>確定為Docker配置好了終端。

這時還沒有容器運作。一旦首先啟動Zookeeper的容器就會有變化,接着是Kafka。

5,執行<code>docker pull wurstmeister/kafka</code>從Docker Hub下載下傳Zookeeper鏡像(可能需要幾分鐘)

你會看到各層的哈希列印在控制台裡,符合預期。

6,執行<code>docker pull wurstmeister/kafka</code>從Docker Hub下載下傳Kafka鏡像(可能需要幾分鐘)

7,在指令行中執行<code>docker images</code>驗證<code>wurstmeister/kafka</code>和<code>wurstmeister/zookeeper</code>兩個鏡像已下載下傳。

8,現在可以在一個終端裡運作<code>docker run --name zookeeper -p 2181 -t wurstmeister/zookeeper</code>引導啟動Zookeeper。如果你在Mac OS X或Windows上,記得<code>$(boot2docker shellinit)</code>。

現在ZooKeeper在監聽2181端口。用Docker(或者Mac OS上的Boot2Docker)的IP位址遠端連接配接确認下。

9,在另一個終端裡執行

記得<code>$(boot2docker shellinit)</code>,如果你在Mac OS X或Windows上。

現在你的電腦上運作着依托Docker的Apache Kafka,你是它的的開心使用者。用<code>docker ps</code>檢視容器狀态。

10,要結束你的Apache Kafka旅程時,用<code>docker stop kafka zookeeper</code>(或<code>docker stop $(docker ps -aq)</code>,如果運作的容器隻有<code>kafka</code>和<code>zookeeper</code>)<code>docker stop</code>容器。

之後運作<code>docker ps</code>會顯示沒有正在運作的容器:

現在沒有正在運作的容器是因為他們被關閉了,這些容器依然可以被再次啟動----使用<code>docker ps -a</code>檢視可以使用的容器。

11,最後,用<code>boot2docker down</code>停止<code>boot2docker</code>守護程序(僅對于Mac OS X和Windows使用者)。

原文釋出時間為:2015-08-05 

本文作者:Azriel

本文來自雲栖社群合作夥伴DockerOne,了解相關資訊可以關注DockerOne。

原文标題:在Docker上運作Apache Kafka