2014-11-14 1 views
3

Мне интересно, за и против наличия или отсутствия nginx внутри вашего изображения докеров. Есть много учебников о том, как установить nginx на докере, но то, о чем я прошу, вам или вам не нужно?Если вы устанавливаете nginx внутри докера?

Если вы устанавливаете nginx на хост докера и указываете ли вы на отдельные запущенные контейнеры (которые могут работать радугами и т. Д.)? или

Если вы устанавливаете другой слой nginx внутри своих контейнеров?

Я не вижу никакой пользы от наличия другого контейнера для докеров в nginx, но потом я удивляюсь, почему так много учебников на этом, как будто это здравый смысл, и я не получаю здравого смысла, что расстраивает меня.

редактировать:

Чем меньше конфигурации в контейнер, тем лучше для меня. Если между контейнером nginx и контейнером приложения есть плотная связь, то это, безусловно, не решение, которое я ищу, и бьет цель иметь контейнеры в первую очередь. Вот почему я склоняюсь к установке nginx на хост Docker.

Если у нас должен быть контейнер nginx, контейнер должен быть независимым от приложений. Конкретная конфигурация приложения, такая как номера портов и IP-адреса, количество рабочих процессов, client_max_body_size, не должна быть сконфигурирована в контейнер, если они не могут быть настроены при выполнении docker run.

+0

В какой контейнер вы хотите поместить nginx (см. Параметры, описанные ниже @PeterLyons ниже), но вы, конечно же, хотите поместить его в какой-то контейнер, а не на хост напрямую. Таким образом, вы получаете хороший пакет со всей конфигурацией nginx (все эти номера портов и пути и т. Д.). – Thilo

+0

Предложите вам указать, что вы цените (гибкость? Меньше движущихся частей?), Тогда у людей есть шанс советовать о компромиссе. Как бы то ни было, вы просите чистое мнение, которое не соответствует теме. – Bryan

+0

@ Брайан: Готово. Я добавил больше информации о том, что я ищу. – garbagecollector

ответ

2

Это может быть закрыто как основанное на мнениях, но, по моему мнению, докеры должны быть вовлечены в создание сетей вплоть до транспортного уровня (TCP/UDP), но не более высокого (HTTP). Таким образом, я бы сказал, нет, вы не должны устанавливать nginx в качестве обратного прокси непосредственно на свой сервер докеров и да, вы должны установить nginx в свой контейнер (ы), если вы хотите, чтобы функции nginx обеспечивали.

Вы можете решить, что вы хотите, чтобы контейнер nginx перед каждым из ваших приложений (это, похоже, больше всего соответствует общей идее контейнеризации и разделения, а не обмена вещами) или один контейнер nginx для обратного прокси-сервера. Несколько приложений, размещенных в контейнеры на том же хосте (проще всего, но более тесно связаны и, возможно, менее гармоничны с философией докера). Вы также можете использовать стиль фьюза и поместить как свое приложение, так и nginx в один и тот же контейнер, который обеспечивает приятную связную единицу, но в противном случае против общего случая 1 дерева процессов на контейнер.

+0

Если у вас есть контейнер nginx, вам нужно будет установить связь между контейнером nginx и контейнерами приложений, чтобы они могли разговаривать друг с другом. Таким образом, вам нужно сначала загружать контейнеры приложений с предопределенными именами, а затем загружать контейнер nginx, в котором он был предварительно сконфигурирован для этих имен. Да, вы правы, он более тесно связан, и преимущество такой конфигурации в том, что хосту Docker больше не нужно устанавливать какой-либо веб-сервер. – garbagecollector