无法连接到本地Docker容器中的Kafka(Windows)

时间:2019-04-09 08:04:35

标签: docker apache-kafka

我正在尝试在Docker容器中本地启动Kafka,但似乎没有正确组合选项。

我正在Windows 10 Docker ce 2.0.0.3(31259)上运行。

我在做什么

  1. 在Docker容器中运行Zookeeper

    docker run -d --name=zookeeper1 --network=host --env-file=zookeeper_options confluentinc/cp-zookeeper

由于zookeeper运行良好,我将忽略环境文件。

  1. 在Docker容器中运行Kafka

    docker run -d --network=host --name=kafka --env-file=kafka_options confluentinc/cp-kafka

包含kafka_options文件

KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181
KAFKA_LISTENERS=PLAINTEXT://localhost:9092
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:29092
  1. 尝试获取元数据列表

    kafkacat -b localhost:29092 -L

(这是我在Windows 10 Ubuntu子系统中所做的,其他我是从PowerShell中运行的。我也有一个小型Java Kafka应用程序,尽管它表现出相同的行为)

结果是

  

%错误:无法获取元数据:本地:代理传输失败

我已阅读的内容

很显然,Quickstart with Docker documentation使用了我不想要的docker-compose;以及Docker section of the documentation

除此之外,最著名的是this post by Robin explaining the advertised listeners concept,但我仍然看不到我做错了什么。

我还发现this issue about a difference in Windows阻止您使用Windows中的官方快速入门步骤;这导致我尝试使用单独的网络进行替代运行。

独立网络

按照问题中的步骤进行操作:

  1. docker network create confluent
  2. docker run -d --name=zookeeper1 --network=confluent -p 22181:2181 --env-file=zookeeper_options confluentinc/cp-zookeeper
  3. docker run -d --network=confluent --name=kafka -p 29092:9092 --env-file=kafka_options confluentinc/cp-kafka
  4. kafkacat -b localhost:29092 -L

那确实将结果更改为

  

%错误:无法获取元数据:本地:超时

因此看起来至少它可以连接,但最终并没有太大帮助。

问题是我在做什么错?是Kafka配置选项,还是我不知道的Docker问题?

编辑:

它可以与sample docker-compose.yml here一起使用,但是我们不应该能够分别启动容器吗?

0 个答案:

没有答案