繁体   English   中英

无法从 docker 容器外部访问 Kafka

[英]Kafka is not accessbile from outside of the docker container

我正在尝试将 Debezium 与 Kafka 连接一起使用,我按照本教程进行操作,并且一切都连接得很好。 但是,问题是我无法再从 docker 容器外部访问 Kafka。

我使用这些命令来启动容器:

docker run -it --rm --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 debezium/zookeeper:2.0.0.Beta1

docker run -it --rm --name kafka -p 9092:9092 --link zookeeper:zookeeper debezium/kafka:2.0.0.Beta1

docker run -it --rm --name connect -p 8083:8083 -e GROUP_ID=1 -e CONFIG_STORAGE_TOPIC=my_connect_configs -e OFFSET_STORAGE_TOPIC=my_connect_offsets --link kafka:kafka debezium/connect:2.0.0.Beta1

我尝试将KAFKA_ADVERTISED_LISTENERS设置为 PLAINTEXT PLAINTEXT://127.0.0.1:9092这允许我从容器外部连接到 Kafka,但我无法再从connect容器连接到kafka容器。 我怎样才能实现两者?

我认为这不是 Kafka 问题,而是 docker 网络问题。 它可能可以通过 docker 网络访问,或者您需要公开它。https://docs.docker.com/network/network-tutorial-standalone/

有了这个,您可以从您的主机上的端口 9092 访问 kafka 容器

  zookeeper:
    image: confluentinc/cp-zookeeper:7.2.0
    ports:
      - "2181:2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

  kafka-broker:
    image: confluentinc/cp-kafka:7.2.0
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    expose:
      - 29092
    environment:
      KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:29092,OUTSIDE://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-broker:29092,OUTSIDE://localhost:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,OUTSIDE:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM