Обновить

Файрвол закрыт, порт открыт: как Docker обходит UFW и почему популярный фикс не работает

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели841
Рейтинг0
Комментарии2

Комментарии 2

Я тоже прописываю локалхост внутри ports. Это работает. Но по факту это костыль: разделение ответственности неверное. Программист пишет docker compose файл. Почему программа должна содержать информацию об окружении?

Второй пример: система не должна быть на столько хрупкой, что даёт юзерам дефолтное право ошибаться. Это если бы rm шел с флагом rf по умолчанию, да ещё если каталог не задан, ставился бы корень диска. А что? Норм соглашение. Так и ports по дефолту биндит все интерфейсы.

Согласен, это костыль, и разделение ответственности действительно перевёрнуто. Но выход есть, и он не в том, чтобы аккуратнее прописывать локалхост.

Правильно, когда сервис вообще не публикует порт. Приложение живёт в docker-сети, наружу смотрит только reverse proxy, и compose приложения про окружение не знает ничего. Если публикация всё-таки нужна, ей место в override-файле, отдельном для дева и прода: базовый compose тогда остаётся окружение-независимым.

Про дефолт спорить не буду, аналогия с rm точная. Показательно, что Docker это частично признал сам: в 28-й версии закрыли доступ к неопубликованным портам контейнеров. Опубликованные оставили как были, иначе сломалось бы всё, что написано за десять лет.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации