docker - 如何为Kafka本地开发配置docker-compose.yml?

标签 docker apache-kafka docker-compose

我正在尝试在 docker 容器中设置 Kafka 以进行本地开发。我的 docker-compose.yml 如下所示:

version: '3'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181"
    hostname: zookeeper
  kafka:
    image: wurstmeister/kafka
    command: [start-kafka.sh]
    ports:
      - "9092"
    hostname: kafka
    environment:
      KAFKA_CREATE_TOPICS: "UploadFile:1:1,GetFile:1:1,TrackUpload:1:1,GetEmailContent:1:1" # topic:partition:replicas
      KAFKA_ADVERTISED_HOST_NAME: kafka # docker-machine ip
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_PORT: 9092
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - "zookeeper"

不幸的是,我在本地主机(不在 docker 中)上运行的节点应用程序无法连接到它。我使用了 url 'kafka:9092' 甚至 'localhost:9092'。什么都行不通。知道发生了什么吗?

最佳答案

为 kafka 服务公开主机端口 9092,您应该能够从应用程序或主机通过“localhost:9092”进行连接。

  ....
  kafka:
    image: wurstmeister/kafka
    command: [start-kafka.sh]
    ports:
      - "9092:9092"
  ....

关于docker - 如何为Kafka本地开发配置docker-compose.yml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51919584/

相关文章:

docker - Fedora Docker 镜像没有 xargs

docker - 我应该在已经具有Cpanel的服务器上安装Docker吗?

apache-kafka - kafka AdminClient 获取 kafka 版本

java - 如何使用 Avro 二进制编码器对 Kafka 消息进行编码/解码?

apache-kafka - Kafka MirrorMaker2 - 不镜像消费者组偏移量

python - 奇怪的 Docker + Celery Bug

java - 如何正确读取dockerfile中的环境变量

docker - Docker无法找到文件

docker - 通过环境变量自动配置的Nextcloud可信域

python - 为什么 AWS SageMaker 运行 Web 服务器进行批量转换?