docker - 图kafka hostPort映射

标签 docker apache-kafka fig

我想将无花果和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/

相关文章:

docker - 我可以从远程容器存储库 "rehydrate"docker 构建缓存吗?

java - Spring-Kafka : Issue while deserialising kafka message - class not in a "trusted package"?

apache-kafka - 将新代理添加到 Kafka 集群时,现有主题的分区会发生什么变化?

Google Cloud Run 中的 docker-compose.yml

docker - Nginx静态网页和带有env变量url的Docker

apache-kafka - 如何保证Kafka分区中的顺序

amazon-web-services - Mesos、Marathon、云和 10 个数据中心——如何相互交流?

django - 与主管一起启动无花果流程

python - 无法使用 Ubuntu 在 docker 容器中安装 pip 包

mysql - elastic beanstalk docker app无法连接到mysql