【问题标题】:Kafka Docker network_mode卡夫卡 Docker 网络模式
【发布时间】:2016-09-08 02:49:32
【问题描述】:

我正在尝试使用 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”行来启动并运行 Kafka。并将 zookeeper url 设置为:“zookeeper:2181”

我不清楚 network_mode 的作用以及为什么它会阻碍 kafka 运行。我希望有人可以对此有所了解并教育我。

非常感谢

【问题讨论】:

    标签: networking docker apache-kafka mode


    【解决方案1】:

    你可以代替

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

    向他们提供 zookeeper 容器的名称,在您的情况下为 zookeeper

    - "KAFKA_ADVERTISED_HOST_NAME=zookeeper"
    - "KAFKA_ZOOKEEPER_CONNECT=zookeper:2181"
    

    这有帮助吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-13
      • 2018-08-29
      • 2018-09-15
      • 2014-10-19
      相关资源
      最近更新 更多