如何使用docker-compose将主机端口范围(5000-5004)映射到5个不同容器中的同一端口(80)

时间:2020-09-08 15:04:42

标签: docker docker-compose

我想在主机上运行服务website的5个独立实例。每个实例将在单独的容器中运行。容器是使用docker-compose创建的。为此,主机上已预先分配了特定的端口(5000-5004)。服务在容器中的端口80上运行。然后应将其映射到主机上的端口50005001500250035004

然后,我用docker-compose up --scale website=5启动容器,该容器应该启动容器的5个实例,并将端口映射到.yml中指定的端口。

但这失败,出现ERROR: Invalid published port: 5000-5004

我的docker-compose.yml

version: '3.4'
services: 
    website:
        image: php:apache
        volumes: ./website:/var/www/html
        ports:
            - "5000-5004:80"

也许此端口映射不是valid for docker-compose,但如何使它工作?

1 个答案:

答案 0 :(得分:1)

似乎在更高版本中已解决:

https://github.com/docker/compose/pull/5428

您确定使用的是docker-compose的最新版本吗?您可以使用以下方法检查当前版本:

docker-compose --version