Инструкция EXPOSE документирует порт, на котором ожидается прослушивание приложения внутри контейнера.Важное слово там - «документы».Он не меняет поведение докера, запускающего ваш контейнер, не публикует порт и не влияет на возможность соединения между контейнерами.
Независимо от того, открываете ли вы порт, вам необходимо отдельно опубликоватьпорт для доступа к нему из-за пределов контейнерной сети.И независимо от того, выставляете ли вы порт или нет, вы можете подключаться между контейнерами в одной и той же сети докеров.
Существуют различные инструменты, которые могут использовать эти метаданные образа для автоматического обнаружения вашего приложения.Сюда входит флаг -P
для публикации всех портов контейнера на случайных портах хоста с высоким номером.Вы также увидите, что обратные прокси (например, traefik) используют это при запросе механизма докера, чтобы определить порт по умолчанию, который будет использоваться для вашего контейнера.