2014-12-03 120 views
1

我想使用fig與卡夫卡來管理kafka集羣。圖kafka主機端口映射

我是無花果的初學者,我有一個hostPort映射問題。

我使用kafka-docker作爲kafka圖像。我的無花果是這裏:

zookeeper: 
    image: jplock/zookeeper:3.4.6 
    ports: 
    - "2181" 
kafka: 
    image: wurstmeister/kafka:0.8.1.1-1 
    ports: 
    - "9092" 
    links: 
    - zookeeper:zk 
    environment: 
    KAFKA_ADVERTISED_HOST_NAME: 192.168.59.103 
    volumes: 
    - /var/run/docker.sock:/var/run/docker.sock 

這是與圖像給出的例子。

現在,這裏是我的問題:

我運行這個命令來啓動羣集:

圖規模卡夫卡= 2

我創建了一個卡夫卡話題是這樣的:

./kafka-topics.sh --create --zookeeper 192.168.59.103:49157 --repli陽離子因子2 --partitions 1 --topic測試

下一頁:

$ ./kafka-topics.sh --describe --zookeeper 192.168.59.103:49157 --topic TEST2主題:TEST2 PartitionCount:1 ReplicationFactor:2個CONFIGS:主題: TEST2分區:0負責人:49158副本:49159,49158 ISR:49159,49158

現在我figKakfa_2崩潰因爲某些原因(它在49159端口上運行)。

如何使用相同的端口重新啓動此容器?

如果我再次運行scale命令,我得到一個新的容器,但映射到另一個hostPort上,並且動物園管理員沒有將它作爲舊實例。

謝謝。

回答

0

如果你在你的fig.yml中使用net: host所有的碼頭容器將使用主機的網絡堆棧,不需要公開端口。這意味着它們在重新啓動或縮小時不會更改。你需要弄清楚如何讓你的卡夫卡實例使用獨特的端口。

http://www.fig.sh/yml.html

+0

使用net:「bridge」(默認值)它工作。隨着網:「主機」 =>重新創建figKafka_kafka_1 ... 無法啓動容器26b3c9472f027cde8ca8a01fc4d3fde03fb3e6543696dae3421a438ed0ae6ee0:(退出狀態2) – Kiva 2014-12-05 10:31:07

+0

好吧,我發現這個https://github.com/docker/docker/issues/5835網:主機選項沒有按」 t與鏈接:( – Kiva 2014-12-05 10:53:42

0

最簡單的方法是不暴露在主機上的端口,但訪問其容器的IP您kafkas(如172.17.0.3或像這樣)端口9092.您可以通過檢查一個集裝箱IP $ docker inspect --format "{{json .NetworkSettings.Networks}}" <container id/name>