Как можно настроить Docker так, чтобы различные "проекты" имели одинаковые порты, доступные на localhost?

Как можно настроить множество связок между сервисом и 3proxy, чтобы не менять порты каждый раз?
  • 21 октября 2023 г. 9:58
Ответы на вопрос 1
Чтобы различные проекты имели одинаковые порты, доступные на localhost, можно использовать функцию перенаправления портов (port forwarding) в Docker.

Для этого нужно в файле конфигурации Docker (обычно называется `docker-compose.yml`) указать различные внешние порты для каждого проекта, а внутренние порты оставить одинаковыми.

Пример `docker-compose.yml` для двух проектов (порты 8080 и 8081):

```yaml
version: '3'
services:
  project1:
    image: myproject1:latest
    ports:
      - 8080:80

  project2:
    image: myproject2:latest
    ports:
      - 8081:80
```

Теперь проект 1 будет доступен на localhost:8080, а проект 2 на localhost:8081.

Чтобы настроить множество связок между сервисом и 3proxy, чтобы не менять порты каждый раз, можно использовать функцию алиасов сети (network aliases) в Docker.

Пример `docker-compose.yml` с алиасами сети:

```yaml
version: '3'
services:
  service1:
    image: myservice1:latest
    networks:
      mynetwork:
        aliases:
          - service1_alias

  service2:
    image: myservice2:latest
    networks:
      mynetwork:
        aliases:
          - service2_alias

networks:
  mynetwork:
```

Теперь можно использовать алиасы `service1_alias` и `service2_alias` внутри контейнеров вместо указания конкретных портов. Это позволит развертывать контейнеры с сервисами на различных портах, и код, работающий с 3proxy, может использовать эти алиасы для связи с нужными сервисами.

Например, в коде сервиса 3proxy можно использовать `service1_alias:8080` и `service2_alias:8080` для связи с сервисами 1 и 2 соответственно. Это позволит избежать необходимости изменять порты каждый раз при добавлении или изменении сервисов.
Похожие вопросы