【问题标题】:Kafka broker not accessible in docker compose在 docker compose 中无法访问 Kafka 代理
【发布时间】:2020-08-07 13:40:49
【问题描述】:

我创建了一个 docker compose 文件,我的应用程序要在其中使用 kafka。

docker-compose.yaml 是:


version: '3.7'

services:
  api:
    depends_on:
      - kafka
    restart: on-failure
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 8080:8080

  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"

  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    depends_on:
      - zookeeper
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 192.168.1.7
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_CREATE_TOPICS: "mytopic:1:1"

192.168.1.7 是我从 ifconfig 获得的 ip。

在我的服务中,我将代理作为 192.168.1.7:9092。

当我对我的 kafka 容器执行 docker ps 和 exec 时。我无法访问 192.168.1.0

虽然奇怪的是在我的应用程序日志中我看到主题已创建,但我在这里做错了什么。

当我尝试创建主题时:

【问题讨论】:

标签: docker apache-kafka docker-compose


【解决方案1】:

你不需要127.0.0.1以外的IP地址

192.168.1.7 看起来像是您的主机 IP,而不是 docker IP,但您没有使用 network_mode: host,因此网络不允许您连接到代理。

我建议查找现有的功能性 Docker Compose 文件,例如 this answer 中的文件

【讨论】:

    【解决方案2】:

    正如上面@oneCricketeer 所发布的,您不必对您的任何主机IP 地址进行硬编码。

    您可以在您的 api 本身中使用“代理”名称连接到代理。同样也可以设置为广告主机名。

    【讨论】:

      猜你喜欢
      • 2021-03-09
      • 1970-01-01
      • 2018-11-07
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多