动态Kafka在Kafka容器上公布了主机名

au9on6nz  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(556)

我在码头集装箱里用Kafka。其中一个要求是,Kafka将提供给生产商在主机上运行本机。这就是为什么我将kafka\u播发的\u主机名设置为我的主机ip。
我的docker-compose.yml如下所示:

version: '2'
services: 
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 192.168.1.10
      KAFKA_CREATE_TOPICS: "test:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERES: PLAINTEXT://localhost:9092
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

而且很有效。
问题是,我想在其他机器上也能使用这个docker compose文件,但我不知道它们的ip可能是什么。
尝试将ip更改为类似“kafka”的名称会导致主机无法使用它(尽管从其他容器中仍然可用)。
有没有一种方法可以在docker compose文件中使用主机ip,而不必对其进行“硬编码”(以便在不同的机器上使用不同的ip地址)?
有没有别的办法解决这个问题?

cgvd09ve

cgvd09ve1#

你有没有试过用这个房子?无论出于什么原因,它都不建议用于生产,但它可能适合您
主机.docker.internal
https://docs.docker.com/docker-for-mac/networking/#there-is-no-docker0-bridge-on-macos#i-want-to-connect-from-a-container-to-a-service-on-the-host主机
https://docs.docker.com/docker-for-windows/networking/#there-is-no-docker0-bridge-on-windows#i-want-to-connect-from-a-container-to-a-service-on-the-host主机

相关问题