Здравствуйте. В настоящее время я планирую некоторую серверную архитектуру с помощью Docker.(Я довольно новичок в Docker)
Мои цели:
- Чтобы на одном компьютере с Ubuntu работало несколько докеров.
- Каждый контейнер используетодинаковые порты для каждого процесса: (например, localhost: 8080 для внешнего интерфейса, localhost: 3000 для внутреннего интерфейса.
Как работает каждый контейнер:
Прямо сейчас яЯ использую docker compose для запуска как внешнего, так и внутреннего интерфейса.
docker-compose.yml
version: '3'
services:
frontend:
build: ./frontend
ports:
- 8080:80
networks:
- app-network
backend:
build: ./backend
ports:
- 3000:3000
working_dir: /usr/src/server
command: node server.bundle.js
networks:
- app-network
networks:
app-network:
driver: bridge
Это прекрасно работает.Я могу посетить localhost: 8080 для веб-страницы и localhost: 3000 для бэкэнда.
Примечание: Внешний контейнер использует образ докера NGINX, а бэкэнд использует NODE: 10 образ докера.
Чего я хочу достичь
На моем сервере у меня будет еще один экземпляр NGINX.Я хотел бы как-то контейнировать каждую настройку docker-compose под одним портом, например localhost: 5000.
Таким образом, когда я получаю запрос от www.example-website1.com, он перенаправляет на localhost: 5000, который затем загружаетlocalhost: 8080 из этой настройки docker-compose.
Опять же, когда я получаю запрос от www.example-website2.com, он перенаправляет на localhost: 5001, который затем загружает localhost: 8080 из другой настройки docker-compose.
Возможно ли это?Или есть другой способ, которым я должен подходить к этой проблеме?