Обновить

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

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели2.2K
Всего голосов 3: ↑3 и ↓0+5
Комментарии5

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

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

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

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

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

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

вот поэтому докер = говно. я лично им не пользуюсь и в 2026м году. и вам советую.

Молотки - говно, если ими бить по голове, то голова может сломаться. Вот поэтому я ими не пользуюсь в 2026.

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

Публикации