我正在尝试使用kafka-docker:https://github.com/wurstmeister/kafka-docker。Docker在我每次启动服务时都会为kafka代理设置一个新的端口。这意味着,32781、32782和32783每次都会发生变化。
$ 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我理解为什么需要这样做(多亏了这个很棒的维基:https://github.com/wurstmeister/kafka-docker/wiki/Connectivity)。
然而,有没有办法破解它,使docker compose选择的临时端口从相同的数字开始?例如,如果它总是从32781开始,我的生活就会容易得多。
谢谢
发布于 2019-11-24 15:57:21
如果您为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.sockhttps://stackoverflow.com/questions/59014590
复制相似问题