Способы оплаты Abuse

Что такое порты контейнера

10.09.2023, 23:08

Порты контейнера - определенные сетевые порты, которые могут быть привязаны к конкретным службам или приложениям внутри контейнера. 

В чем особенность контейнеров 

Каждый контейнер может иметь свои собственные порты, которые могут использоваться для взаимодействия с внешним миром или для взаимодействия с другими контейнерами. При запуске контейнера можно указать, какие порты должны быть доступны внутри контейнера и какие порты должны быть проброшены на хостовую машину.

ports:
внешний_порт:внутренний порт

Например, пробросим порт 80 как 8094:

docker-nginx:
  image: nginx
  ports:
    - '8094:80'

Когда контейнер работает, приложение внутри контейнера может слушать или отправлять данные через соответствующий порт. Пользователи могут взаимодействовать с приложением, обращаясь к порту контейнера, который был проброшен на хостовую машину.

Как запустить контейнер

Для запуска портов контейнера вам понадобится использовать команду docker run с флагом -p или --publish.

Синтаксис команды docker run с флагом -p выглядит следующим образом:

docker run -p <хост-порт>:<контейнер-порт> <имя_образа>

Где:

<хост-порт> - порт на вашем хосте, который будет проксироваться на порт контейнера.

<контейнер-порт> - порт внутри контейнера, который будет доступен через указанный хост-порт.

<имя_образа> - имя образа контейнера, который вы хотите запустить.

Например, чтобы запустить контейнер с веб-сервером на порту 80 и проксировать его на порт 8080 вашего хоста, вы можете использовать следующую команду:

docker run -p 8080:80 nginx

Теперь веб-сервер, запущенный в контейнере, будет доступен через порт 8080 вашего хоста.

Вы также можете использовать диапазон портов, указав несколько пар <хост-порт>:<контейнер-порт>. Например:

docker run -p 8080-8082:80-82 nginx

Это проксирует порты 80, 81 и 82 внутри контейнера на порты 8080, 8081 и 8082 вашего хоста соответственно. После запуска контейнера с проксированными портами, вы сможете обращаться к ним через указанные хост-порты.