Подтвердить что ты не робот

"Домены" на docker-compose.yml имеют тот же эффект, что и EXPOSE на Dockerfile?

Объявляет ли файл docker-compose.yml:

ports:
 - "3306:3306"

и в файле Docker:

EXPOSE 3306

имеют одинаковый эффект?

4b9b3361

Ответ 1

Нет: EXPOSE только открывает порт в контейнере, делая его доступным для других контейнеров.

"3306:3306" опубликует порт на хосте, делая тот же порт доступным с хоста.

Смотрите Dockerfile EXPOSE:

Инструкция EXPOSE информирует Docker о том, что контейнер прослушивает указанные сетевые порты во время выполнения.
EXPOSE не делает порты контейнера доступными для хоста. Для этого вы должны использовать флаг -p для публикации диапазона портов.

Именно этим и занимается секция docker-compose.yml ports. Он отображает порт контейнера на хост.