Порти контейнера - певні мережеві порти, які можуть бути прив'язані до конкретних служб або додатків усередині контейнера.
У чому особливість контейнерів
Кожен контейнер може мати свої власні порти, які можуть використовуватися для взаємодії із зовнішнім світом або для взаємодії з іншими контейнерами. Під час запуску контейнера можна вказати, які порти мають бути доступні всередині контейнера і які порти мають бути прокинуті на хостову машину.
ports:
external_port:Internal port
Наприклад, прокинемо порт 80 як 8094:
docker-nginx:
image: nginx
ports:
- '8094:80'
Коли контейнер працює, додаток усередині контейнера може слухати або надсилати дані через відповідний порт. Користувачі можуть взаємодіяти з додатком, звертаючись до порту контейнера, який був прокинутий на хостову машину.

Як запустити контейнер
Для запуску портів контейнера вам знадобиться використовувати команду docker run з прапором -p або --publish.
Синтаксис команди docker run з прапором -p виглядає наступним чином:
docker run -p <host port>:<container port> <image_name>
Де:
<host-port> - порт на вашому хості, який буде проксіруватися на порт контейнера.
<container-port> - порт усередині контейнера, який буде доступний через зазначений хост-порт.
<image_name> - ім'я образу контейнера, який ви хочете запустити.
Наприклад, щоб запустити контейнер із веб-сервером на порту 80 і проксірувати його на порт 8080 вашого хоста, ви можете використовувати таку команду:
docker run -p 8080:80 nginx
Тепер веб-сервер, запущений у контейнері, буде доступний через порт 8080 вашого хоста.
Ви також можете використовувати діапазон портів, вказавши кілька пар <хост-порт>:<контейнер-порт>.
Наприклад:
docker run -p 8080-8082:80-82 nginx
Це проксірує порти 80, 81 і 82 всередині контейнера на порти 8080, 8081 і 8082 вашого хоста відповідно. Після запуску контейнера з проксованими портами, ви зможете звертатися до них через зазначені хост-порти.
