【问题标题】:Kafka FQDN in containers enviornment容器环境中的 Kafka FQDN
【发布时间】:2018-09-28 03:00:07
【问题描述】:

在容器上运行 kafka 并尝试在同一主机上创建新的 pgsql 容器。

pgsql 容器不断退出并且日志显示

错误:无法在 kafka.domain 连接到 Kafka,检查 docker run -e KAFKA_FQDN= value

kafka 容器使用以下属性构建

docker run -d \
 --name=app_kafka \
 -e KAFKA_FQDN=localhost \
 -v /var/app/kafka:/data/kafka \
 -p 2181:2181 -p 9092:9092 \
 app/kafka

pgsql 容器与

docker run -d --name app_psql \
  -h app-psql \
  **-e KAFKA_FQDN=kafka.domain \
  --add-host kafka.domain:172.17.0.1 \**
  -e MEM=16 \
  --shm-size=512m \
  -v /var/app/config:/config \
  -v /var/app/postgres/main:/data/main \
  -v /var/app/postgres/ts:/data/ts \
  -p 5432:5432 -p 9005:9005 -p 8080:8080 \
  app/postgres

如果我使用的是 docker0 ip 地址,日志表明没有到主机的路由,如果我使用的是 kafka docker ip,我会被拒绝连接。

我想我在这里缺少一些基本的东西,需要根据我的环境进行修改,但我在这里缺乏知识。

将不胜感激。

【问题讨论】:

  • 您是否有理由需要构建自己的 Kafka 容器?为什么 Postgres 需要了解 Kafka?
  • 解释了整个解决方案here我只是想按照它的git page中描述的那样来实现它
  • 当然,不过 1) 任何现有的 Kafka 映像都应该适用于 pgsql 连接到 2) 编辑主机文件将是错误的解决方案。我不确定 FQDN 环境变量实际上在容器内做什么 rmoff.net/2018/08/02/kafka-listeners-explained

标签: docker apache-kafka


【解决方案1】:

你需要编辑容器文件hosts,你可以在dockerFile中传递一个脚本,比如

COPY dot.sh .
ENTRYPOINT ["sh","domain.sh"]

还有 domain.sh

#!/bin/sh
echo Environment container kafka is: "kafka.domain"
echo PGSQL container  is "pgsql.domain"
echo "127.0.0.1 kafka.domain" >> /etc/hosts
echo "127.0.0.1 pgsql.domain" >> /etc/hosts

根据需要随意更改 ip 或域。

【讨论】:

  • 谢谢你的回答,我去试试
猜你喜欢
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
  • 2020-01-18
  • 1970-01-01
  • 2020-11-19
  • 2020-09-26
  • 2016-05-30
相关资源
最近更新 更多