Docker: запуск нескольких контейнеров, доступных из Интернета

Docker: запуск нескольких контейнеров, доступных из Интернета

У меня есть вопрос к Docker. Сейчас я запускаю Apache с разными сайтами в разных папках с настроенными виртуальными хостами. Теперь я хочу запустить несколько контейнеров Docker с маршрутизацией на основе имен. Как это сделать? У меня была идея запустить каждый контейнер на своем собственном порту и использовать Apache для переадресации 80 или 443 на порт контейнера. Но я думаю, что это будет большой проблемой производительности, и я не знаю, как это настроить. Спасибо.

решение1

Если Apache запущен для каждого виртуального хоста, потребление памяти и загрузка ЦП будут выше, особенно на сайте-партнере.

Docker может немного помочь вам в решении проблем с развертыванием.

Это будет полезно, если вы планируете иметь разные настройки для каждого виртуального хоста, например, одну с PHP, другую с tomcat/Java.

Если вы хотите, чтобы каждый хост был в контейнере, то вам нужно будет также выделить IP-адреса для каждого из них. Вы можете иметь имена хостов в DNS, указывающие на каждый соответствующий IP.

Не нужно делать переадресацию портов или обратный прокси. Представьте, что у вас есть виртуальная машина для каждого экземпляра Apache. Каждый Apache будет контейнером. Ничего другого в нем не будет работать, если вы явно не настроите контейнер для запуска чего-то другого.

Если вы хотите использовать один внешний IP-адрес, вы можете использовать обратный прокси-сервер, расположенный перед контейнерами.

Связанный контент