У меня есть вопрос к Docker. Сейчас я запускаю Apache с разными сайтами в разных папках с настроенными виртуальными хостами. Теперь я хочу запустить несколько контейнеров Docker с маршрутизацией на основе имен. Как это сделать? У меня была идея запустить каждый контейнер на своем собственном порту и использовать Apache для переадресации 80 или 443 на порт контейнера. Но я думаю, что это будет большой проблемой производительности, и я не знаю, как это настроить. Спасибо.
решение1
Если Apache запущен для каждого виртуального хоста, потребление памяти и загрузка ЦП будут выше, особенно на сайте-партнере.
Docker может немного помочь вам в решении проблем с развертыванием.
Это будет полезно, если вы планируете иметь разные настройки для каждого виртуального хоста, например, одну с PHP, другую с tomcat/Java.
Если вы хотите, чтобы каждый хост был в контейнере, то вам нужно будет также выделить IP-адреса для каждого из них. Вы можете иметь имена хостов в DNS, указывающие на каждый соответствующий IP.
Не нужно делать переадресацию портов или обратный прокси. Представьте, что у вас есть виртуальная машина для каждого экземпляра Apache. Каждый Apache будет контейнером. Ничего другого в нем не будет работать, если вы явно не настроите контейнер для запуска чего-то другого.
Если вы хотите использовать один внешний IP-адрес, вы можете использовать обратный прокси-сервер, расположенный перед контейнерами.