Встречается на собеседованиях • сегодня

Что произойдёт, если не указать EXPOSE для портов в Dockerfile

Если не указать EXPOSE в Dockerfile, контейнер всё равно сможет прослушивать указанные порты. Однако, EXPOSE выполняет две ключевые функции:

  1. Документирование — показывает, какие порты предназначены для работы приложения.
  2. Автоматическое пробрасывание — при запуске контейнера с -P (рандомный порт), Docker автоматически связывает указанные в EXPOSE порты с хостом.

Без EXPOSE порты останутся доступными только внутри сети контейнера или если явно указать -p при запуске.

Пример:

dockerfile
FROM python:3.9
CMD ["python", "-m", "http.server", "8000"]

Здесь сервер слушает порт 8000, но без EXPOSE 8000 придётся вручную указывать -p 8000:8000 при запуске.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы