2014-12-03 113 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>