Kafka Docker network_mode

我试图让卡夫卡在我的Mac上运行,使用docker撰写。

这是我的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加载它寻找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运行。 我希望有人能够对此有所了解并教育我。

非常感激

你可以代替

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

为他们提供动物园pipe理员容器的名称,这是你的情况下的zookeeper

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

这有帮助吗?