Docker compose scale命令为新容器创建随机端口

Docker compose scale命令为新容器创建随机端口,docker,docker-compose,ports,Docker,Docker Compose,Ports,当前,docker compose scale命令为新容器创建随机端口 有没有办法为新容器指定端口?在您的docker compose.yml中 postgres: image: postgres:9.5 environment: - POSTGRES_PASSWORD=postgres ports: - 5432:5432 它将绑定到5432,但是,请注意,由于明显的原因,同一节点上不能有多个实例 要在一个节点上使用多个实例,可以使用如下动态端口 postgres

当前,docker compose scale命令为新容器创建随机端口


有没有办法为新容器指定端口?

在您的
docker compose.yml

postgres:
  image: postgres:9.5
  environment:
    - POSTGRES_PASSWORD=postgres
  ports:
    - 5432:5432
它将绑定到
5432
,但是,请注意,由于明显的原因,同一节点上不能有多个实例

要在一个节点上使用多个实例,可以使用如下动态端口

postgres:
  image: postgres:9.5
  environment:
    - POSTGRES_PASSWORD=postgres
  ports:
    - 5432+:5432

因此,允许
scale=4
创建发布在
5432
5433
5434
5435
上的4个实例,但所有实例都路由到它们的内部端口。

docker compose.yml

postgres:
  image: postgres:9.5
  environment:
    - POSTGRES_PASSWORD=postgres
  ports:
    - 5432:5432
它将绑定到
5432
,但是,请注意,由于明显的原因,同一节点上不能有多个实例

要在一个节点上使用多个实例,可以使用如下动态端口

postgres:
  image: postgres:9.5
  environment:
    - POSTGRES_PASSWORD=postgres
  ports:
    - 5432+:5432

因此,允许
scale=4
创建发布在
5432
5433
5434
5435
上的4个实例,但所有路由都到它们的内部端口。

谢谢@Thomas我相信这个选项在docker 1.15+以上版本和docker compose v3中,但我使用的是docker 1.12和compose v2(此解决方案不起作用)。是否有其他选择。此解决方案尚未真正发布(compose 1.17.0)。但是,他们计划实施添加端口范围,这似乎是一个更好的选项,但不确定是否已实施。感谢@Thomas,我相信此选项在docker 1.15+以上版本和docker compose v3中,但我正在使用docker 1.12和compose v2(此解决方案不起作用)。是否有其他选择。此版本尚未真正发布(compose 1.17.0)。但是,他们计划实施添加端口范围,这似乎是一个更好的选择,但不确定是否已经实施。