kafka:
  image: <image name>:latest
  ports:
    - "9092:9092"
    - "9093:9093"
  links:
    - zookeeper
  environment:
    ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
    KAFKA_BROKER_ID: 1
    KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9093, CLIENT://localhost:9092
    KAFKA_LISTENERS: PLAINTEXT://:9093, CLIENT://:9092
    LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,CLIENT:PLAINTEXT

这里“ kafka:9093 " is used in another "服务容器" as bootstarp server and docker is able to resolve IP address as the containers " zookeeper ", " kafka " "服务容器”在同一个网络中运行 .

在我的情况下"Service container"推送消息给kafka,它工作正常 . 我有java单元测试来使用在引导服务器上运行的消息,因为“ localhost:9092 ”无法正常工作 .

如何使其与另一个容器或主机中的不同侦听器一起使用?