Разница между опубликованием и выставлением портов в Docker заключается в следующем:
- Выставление порта означает информирование Docker о том, что порт доступен для связи между контейнерами, но не доступен из-за пределов сети Docker, если не было выполнено опубликование. 2 Для этого используется команда EXPOSE в Dockerfile или опция --expose при запуске контейнера. 14
- Публикация порта делает сервисы, работающие внутри контейнера, доступными для внешнего мира, сопоставляя порт контейнера с портом хоста. 2 Для этого используется флаг -p (или --publish) при запуске контейнера. 25
Таким образом, выставленные порты используются для внутренней связи внутри контейнера, а опубликованные — для связи с внешними системами. 3