networking - Kafka Docker network_mode

标签 networking docker apache-kafka mode

我正在尝试使用docker compose在Mac上启动和运行Kafka。

这是我的docker-compose.yml文件:

version: '2'
services:
zookeeper:
   image: ********
   network_mode: "host"
   hostname: "zookeeper"
   environment:
     - "MYID=1"
   ports:
     - "2181:2181"
     - "3888:3888"
mysql:
   image: *******
   network_mode: "host"
   hostname: "mysql"
   environment:
     - "MYSQL_ROOT_PASSWORD=password"
   ports:
     - "3306:3306"
schema-registry:
   image: ********
   network_mode: "host"
   hostname: "schema-registry"
   environment:
     - "ZOOKEEPER_URL=127.0.0.1:2181"
   ports:
     - "8081:8081"
kafka:
   image: **********
   network_mode: "host"
   hostname: "kafka"
   environment:
     - "SERVICE_NAME=localhost"
     - "SERVICE_TAGS=syracuse-dev"
     - "KAFKA_ADVERTISED_HOST_NAME=localhost"
     - "KAFKA_ZOOKEEPER_CONNECT=localhost:2181"
     - "KAFKA_NUM_PARTITIONS=10"
     - "KAFKA_LISTENERS=PLAINTEXT://:9092"
     - "KAFKA_BROKER_ID=1"
     - "KAFKA_DEFAULT_REPLICATION_FACTOR=1"
   ports:
     - "9092:9092"
     - "7203:7203"

除了Kafka之外,其他所有东西都可以正常运行。当Kafka加载时,一旦发现我会寻找以下错误来寻找Zookeeper。
Found zookeeper
Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: moby: moby: unknown error

通过从每个容器中删除“network_mode:” host“行,并将Zookeeper网址设置为:” zookeeper:2181“,我可以启动Kafka并使其运行。

我不清楚network_mode的作用以及为什么它阻止kafka运行。我希望有人能对此有所启发并教育我。

非常感激

最佳答案

您可以代替

- "KAFKA_ADVERTISED_HOST_NAME=localhost"
- "KAFKA_ZOOKEEPER_CONNECT=localhost:2181"

为他们提供Zookeeper容器的名称,在您的情况下为zookeeper
- "KAFKA_ADVERTISED_HOST_NAME=zookeeper"
- "KAFKA_ZOOKEEPER_CONNECT=zookeper:2181"

有帮助吗?

关于networking - Kafka Docker network_mode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39372817/

相关文章:

linux - 网络设置

android - 我的 android 应用程序有一个基于似乎损坏的 ASyncTask 的客户端套接字

docker-compose 卷未安装到主机目录

django - 没有权限在docker中访问此服务器(apache2)上的/

elasticsearch - Kafka连接器Elasticsearch topic.regex

apache-kafka - Kafka Streams - 无法重新平衡错误

ios - Swift/Alamofire 完成处理程序的困难

networking - 用于对声音进行分类的时间 CNN : cur_target assertion

docker - 是否可以在 Docker 容器内安装复杂的服务器?

express - Kafka+API服务架构