在 docker 上为 kafka 公开端口 8083 会出错

Exposing port 8083 for kafka on docker gives error

docker-compose 文件的图片如下。

version: '2'
 
services:
  zookeeper:
    image: 'bitnami/zookeeper:3'
    ports:
      - '2181:2181'
    volumes:
      - 'zookeeper_data:/bitnami'
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes

  kafka:
    image: 'bitnami/kafka:2'
    ports:
      - '9092:9092'
      - '29092:29092'
      - '8083:8083'
    volumes:
      - 'kafka_data:/bitnami'
    environment:
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,PLAINTEXT_HOST://:29092
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
    depends_on:
      - zookeeper    
volumes:
  zookeeper_data:
    driver: local
  kafka_data:
    driver: local

当我不尝试在 kafka 上公开端口 8083 时,图像工作完美。当我尝试公开端口时,它抛出错误并且容器停止。我的主要问题是我需要访问 kafka connect 但我无法使用此配置在 docker 容器内执行此操作。有什么办法可以解决吗?

问题可能是您的本地机器没有可用的 8083 端口! 寻找它并尝试更改该端口绑定

- '8084:8083'

你有东西运行正在别处占用那个端口

Kafka broker 在 8083 上没有 运行 任何东西,你暴露给主机的监听器只有 29092

如果您尝试 运行 Kafka Connect,请使用另一个容器,而不是代理

Iam not able to do it inside the docker container with this configuration

使用kafka:9092