卡夫卡无法从docker容器外部访问



我正在尝试将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://127.0.0.1:9092,这允许我从容器外部连接到Kafka,但我无法再从connect容器连接到kafka容器。我怎样才能做到这两点?

有了这个,您可以从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"
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

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

相关内容

  • 没有找到相关文章

最新更新