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

Python Senior Без компании
Что произойдёт, если не указать EXPOSE для портов в Dockerfile
Ответы
Если не указать `EXPOSE` в Dockerfile, контейнер всё равно сможет прослушивать указанные порты. Однако, `EXPOSE` выполняет две ключевые функции: - **Документирование** — показывает, какие порты предназначены для работы приложения. - **Автоматическое пробрасывание** — при запуске контейнера с `-P` (рандомный порт), Docker автоматически связывает указанные в `EXPOSE` порты с хостом. Без `EXPOSE` порты останутся доступными только внутри сети контейнера или если явно указать `-p` при запуске. **Пример:** ``` FROM python:3.9 CMD ["python", "-m", "http.server", "8000"] ``` Здесь сервер слушает порт 8000, но без `EXPOSE 8000` придётся вручную указывать `-p 8000:8000` при запуске.