Top.Mail.Ru
Ответы

В каких случаях для докера нужен EXPOSE?

На виртуальной машине в докере с network_mode: host в docker-compose.yml развернуто приложение, которое ожидает подключения к нему на 0.0.0.0:8080 извне контейнера и виртуальной машины и развернута на виртуальной машине вне докер образа СУБД, которая выставляет порт 8081 локально для доступа из контейнера. Вопрос в том, какие из этих портов должны быть указаны в Dockerfile как EXPOSE без указаний портов в yaml.

По дате
По Рейтингу
Аватар пользователя
Просветленный
4мес

EXPOSE служит лишь для документирования портов, которые слушает контейнер, поэтому при network_mode: host в Dockerfile надо указать только порт 8080, на котором работает приложение внутри контейнера, а порт 8081, предоставляемый внешней СУБД, указывать не нужно.