Порти контейнера - певні мережеві порти, які можуть бути прив'язані до конкретних служб або додатків усередині контейнера.
Кожен контейнер може мати свої власні порти, які можуть використовуватися для взаємодії із зовнішнім світом або для взаємодії з іншими контейнерами. Під час запуску контейнера можна вказати, які порти мають бути доступні всередині контейнера і які порти мають бути прокинуті на хостову машину.
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 вашого хоста відповідно. Після запуску контейнера з проксованими портами, ви зможете звертатися до них через зазначені хост-порти.