我想将无花果和kafka一起使用来管理kafka集群。
我是无花果的初学者,并且hostPort映射存在问题。
我将kafka-docker用作kafka镜像。我的fig.yml在这里:
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
这是图片提供的例子。
现在,这是我的问题:
我运行以下命令来启动集群:
fig scale kafka=2
我创建一个像这样的kafka主题:
./kafka-topics.sh --create --zookeeper 192.168.59.103:49157 --replication-factor 2 --partitions 1 --topic test
下一个:
$ ./kafka-topics.sh --describe --zookeeper 192.168.59.103:49157 --topic test2 Topic:test2 PartitionCount:1 ReplicationFactor:2 Configs: Topic: test2 Partition: 0 Leader: 49158 Replicas: 49159,49158 Isr: 49159,49158
现在,由于某些原因,我的figKakfa_2崩溃了(它在49159端口上运行)。
如何使用相同的端口重新启动此容器?
如果再次运行scale命令,则会得到一个新容器,但会映射到另一个hostPort上,而zookeeper不会将其作为旧实例获得。
谢谢。
最佳答案
如果在fig.yml中使用net: host
,则所有Docker容器都将使用主机的网络堆栈,而无需暴露端口。这意味着它们不会在重新启动或按比例缩小时更改。您需要弄清楚如何使kafka实例使用唯一的端口。
http://www.fig.sh/yml.html
关于docker - 图kafka hostPort映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27276656/