Можно ли два инстанса сервиса повесить на 1 порт/2 адреса в docker compose?

Есть желание из докеркомпоза создать конструкцию, где два одинаковых сервиса (для примера - postgres) с различными задачами будут доступны каждый на своём ip-адресе, но при этом у обоих будет открыт один порт. Конфигурация с разными портами - работает, есть ли возможность сделать, чтобы каждый сервис слушал свой порт 5432?

services:
  postgres-1:
    container_name: "postgres-1"
    image: "postgres:16.4"
    environment:
      POSTGRES_PASSWORD: "postgres"
    restart: "always"
    volumes:
      - "./db1:/var/lib/postgresql/data"
    networks:
      custom_network:
        ipv4_address: 172.28.1.2
    ports:
      - "5432:5432"

  postgres-2:
    container_name: "postgres-2"
    image: "postgres:17beta3"
    environment:
      POSTGRES_PASSWORD: "postgres"
    restart: "always"
    volumes:
      - "./db2:/var/lib/postgresql/data"
    networks:
      custom_network:
        ipv4_address: 172.28.1.3
    ports:
      - "5433:5432"

networks:
  custom_network:
    driver: bridge
    enable_ipv6: false
    ipam:
      driver: default
      config:
        - subnet: 172.28.1.0/24```

Ответы (1 шт):

Автор решения: Rabban Keyak

Укажите у одного:

ports:
  - "127.0.0.1:5432:5432"

а у другого:

ports:
  - "127.0.0.2:5432:5432"

Или же обращайтесь по адресам внутренней сети - 172.28.1.2:5432 и 172.28.1.3:5432.

→ Ссылка