Чтобы различные проекты имели одинаковые порты, доступные на 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 соответственно. Это позволит избежать необходимости изменять порты каждый раз при добавлении или изменении сервисов.