【问题标题】:Force ephemeral port binding in docker-compose在 docker-compose 中强制临时端口绑定
【发布时间】:2020-03-19 17:26:57
【问题描述】:

我正在尝试使用 kafka-docker:https://github.com/wurstmeister/kafka-docker。每次我再次启动服务时,Docker 都会为 kafka 代理设置一个新端口。也就是说,327813278232783 每次都会变化。

$ docker container ls
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                                                NAMES
c9e2188366cb        wurstmeister/zookeeper   "/bin/sh -c '/usr/sb…"   5 minutes ago       Up 5 minutes        22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp   kafka-docker_zookeeper_1
d3db1c6b39aa        kafka-docker_kafka       "start-kafka.sh"         5 minutes ago       Up 5 minutes        0.0.0.0:32781->9092/tcp                              kafka-docker_kafka_3
3ea8951fef31        kafka-docker_kafka       "start-kafka.sh"         5 minutes ago       Up 5 minutes        0.0.0.0:32782->9092/tcp                              kafka-docker_kafka_2
6bf090978b05        kafka-docker_kafka       "start-kafka.sh"         5 minutes ago       Up 5 minutes        0.0.0.0:32783->9092/tcp                              kafka-docker_kafka_1

我明白为什么需要这样做(感谢这个很棒的 wiki:https://github.com/wurstmeister/kafka-docker/wiki/Connectivity)。

但是,有没有办法破解它,以便 docker compose 选择的临时端口以相同的数字开头?例如,如果它总是以32781 开头,我的生活会轻松很多。

谢谢

【问题讨论】:

    标签: docker apache-kafka docker-compose docker-swarm


    【解决方案1】:

    如果为 kafka 容器指定一个端口范围,例如 32781-32790,它将从该范围内分配端口。我不能保证它总是以32781 开头,因为我在文档中没有找到任何关于它的确认,但根据我过去的经验,它总是从端口范围中的第一个端口开始。

    version: '2'
    services:
      zookeeper:
        image: wurstmeister/zookeeper
        ports:
          - "2181:2181"
      kafka:
        build: .
        ports:
          - "32781-32790:9092"
        environment:
          KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100
          KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
    

    【讨论】:

    • 只控制一个容器,而不是整个集群
    • @MinhTrangVy 如果满意,请将答案标记为正确:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 2022-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多