Порты контейнера - определенные сетевые порты, которые могут быть привязаны к конкретным службам или приложениям внутри контейнера.
Каждый контейнер может иметь свои собственные порты, которые могут использоваться для взаимодействия с внешним миром или для взаимодействия с другими контейнерами. При запуске контейнера можно указать, какие порты должны быть доступны внутри контейнера и какие порты должны быть проброшены на хостовую машину.
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>
Где:
<хост-порт> - порт на вашем хосте, который будет проксироваться на порт контейнера.
<контейнер-порт> - порт внутри контейнера, который будет доступен через указанный хост-порт.
<имя_образа> - имя образа контейнера, который вы хотите запустить.
Например, чтобы запустить контейнер с веб-сервером на порту 80 и проксировать его на порт 8080 вашего хоста, вы можете использовать следующую команду:
docker run -p 8080:80 nginx
Теперь веб-сервер, запущенный в контейнере, будет доступен через порт 8080 вашего хоста.
Вы также можете использовать диапазон портов, указав несколько пар <хост-порт>:<контейнер-порт>.
Например:
docker run -p 8080-8082:80-82 nginx
Это проксирует порты 80, 81 и 82 внутри контейнера на порты 8080, 8081 и 8082 вашего хоста соответственно. После запуска контейнера с проксированными портами, вы сможете обращаться к ним через указанные хост-порты.