данные:
Платформа: Linux Debian 10
Docker: последней версии (с оф. сайта, установлен неделю назад) + docker-compose
Нужно запустить 10 контейнеров, каждый из которых использует стандартный порт. Для примера, пусть это будет Nginx (веб сервер, порт 80). На выходе, контейнер должен висеть на том же самом порту.
Очевидное решение — задать контейнерам разные статические IP, по которым с хост-машины можно будет обращаться к этим контейнерам.
Собственно, вопрос заключается в том, какой тип сети и какие параметры нужно указать в docker-compose.yml, что бы добиться желаемого результата? Основное требование к решению — контейнеры должны быть доступны с хост машины, на которой они и запущены.
самое примитивное - запустить 11-тый контейнер с тем же nginx-ом на борту, который будет раскидывать обращения по остальным контейнерам. а то... реализовать это теоретически можно, но! вручную придется прописывать пачку правил в iptables и добавлять пачку ip адресов на эту машину. кмк 11 контейнер - проще.
контейнеры между собой общаются по именам
благодарю за помощь, я на самом деле я именно так и подумал (как вариант решения), но прокладка из лишних прокси — не слишком хорошая в целом идея, к тому же, Nginx в данном случае просто как пример, там могут быть буквально любые серверы
macvlan/ ipvlan не пробовал ?
пробовал, но что-то не получилось... Либо контейнеры на 0.0.0.0 биндятся сами, либо я вообще открытых портов с их адресами не вижу... В этот момент я подумал, что что-то делаю не так, отсюда собственно и произошел вопрос
а что за 10 контейнеров то? какой у них функционал, зачем тебе их по разным сетям раскидывать?
это риторический в данном случае вопрос, в моём случае это может быть в буквальном смысле что угодно: физически разные БД работающие на одном порту (MySQL, MardiaDB, Percona и пр.) и их клиенты соотв., всякие веб-серверы и масса других серверных приложений, "идеальная" архитектура построения которых была бы именно в таком виде (с разными IP)
Не погоди, просто пробрасывай на разные порты
я так и сделал уже, но тогда возникает необходимость "прокладки" в виде реверс-прокси, хотел от нее избавиться
это то что называется "лень на клиенте порт прописывать пусть в дефолтный стучится"?
Зачем 🤦 ты что-то странное делаешь
а реверс прокси зачем
одна из проблем в том, что браузеры например всегда стучатся в дефолтный порт, хотя, насколько я помню, на уровне того же DNS'а порты можно указать, но браузеру пофиг
что бы по разным портам раскидывать соотв.
ты где то ошибся
тогда возникает другой риторический вопрос. а зачем 10 одинаковых сервисов, которые не нужно балансировать?
просто в браузере пишешь адрес:port и все
Ой, только в браузере можно указать порт, куда обращаться. И в этих практиках нет ничего плохого
сервисы судя по всему разные, но поднимаются на одних и тех же портах :/
Обсуждают сегодня