Создание виртуальных доменов в локальной сети с использованием Docker может упростить работу с несколькими приложениями, избегая конфликтов при использовании `localhost`. Вам потребуется настроить локальные DNS-имена для ваших приложений, чтобы они были доступны по понятным URL, вместо использования различных портов. Ниже описан процесс, как это сделать на Windows с WSL2.
### Шаги для настройки виртуальных доменов
1. **Обновите файл hosts**:
Вам нужно добавить записи в файл `hosts` вашей системы, чтобы указать, какие виртуальные домены будут указывать на ваш локальный сервер.
- Откройте файл `C:\Windows\System32\drivers\etc\hosts` с правами администратора.
- Добавьте строки для каждого вашего приложения. Например:
```plaintext
127.0.0.1 app1.local
127.0.0.1 app2.local
```
2. **Создайте Docker Compose файл**:
Создайте файл `docker-compose.yml`, в котором будут определены ваши контейнеры с соответствующими именами хостов. Например:
```yaml
version: '3'
services:
app1:
image: ваш_образ_приложения_1
container_name: app1
networks:
app-network:
aliases:
- app1.local
ports:
- "8081:80" # проброс порта в случае необходимости
app2:
image: ваш_образ_приложения_2
container_name: app2
networks:
app-network:
aliases:
- app2.local
ports:
- "8082:80" # проброс порта в случае необходимости
networks:
app-network:
driver: bridge
```
3. **Запустите контейнеры**:
В директории, где находится файл `docker-compose.yml`, выполните команду:
```bash
docker-compose up -d
```
Это запустит ваши контейнеры в фоновом режиме.
4. **Необходимость изменения в браузере**:
После этого вы сможете получить доступ к приложению по URL-адресу `http://app1.local` и `http://app2.local` в вашем браузере. Убедитесь, что ваш браузер не использует кэш, если вы изменяли файл `hosts`.
### Как использовать WSL2
- Убедитесь, что у вас установлен Docker и он корректно работает под WSL2. Также убедитесь, что ваши контейнеры имеют доступ к сети WSL2.
- Если вы хотите быстро проверить соединение из WSL2, выполните следующие команды:
```bash
ping app1.local
ping app2.local
```
### Заключение
Теперь вы можете разворачивать и тестировать несколько приложений на одном локальном сервере с использованием разных виртуальных доменных имен. Это устраняет необходимость в громоздком использовании различных портов и упрощает переключение между приложениями.