Управление портами Docker

Читать первым в Telegram

В Docker сами контейнеры могут иметь приложения, работающие на портах. Если вы хотите получить доступ к приложению в контейнере через номер порта, то вам необходимо сопоставить номер порта контейнера с номером порта хоста Docker. Рассмотрим пример того, как можно это достичь.

В нашем примере мы собираемся загрузить контейнер Jenkins из Docker Hub. После чего мы сопоставим номер порта Jenkins с номером порта хоста Docker.

Шаг 1. Первым делом вам необходимо зарегистрироваться на Docker Hub.

Шаг 2. После того как вы зарегистрируетесь, войдите в Docker Hub.

Шаг 3. Теперь мы рассмотрим образ Jenkins.

Шаг 4. Если вы прокрутите вниз на той же странице, то увидите команду Docker pull, которая будет использоваться для загрузки образа Jenkins на локальный сервер Ubuntu.

Шаг 5. Перейдите на сервер Ubuntu и выполните следующую команду:

sudo docker pull jenkins

Шаг 6. Чтобы понять, какие порты открыты контейнером, вы должны использовать команду Docker inspect.

Давайте подробнее рассмотрим эту команду.

docker inspect

Данный метод позволяет возвращать низкоуровневую информацию о контейнере или образе.

docker inspect Container/Image
  • Container/Image — контейнер или образ, который необходимо просмотреть.

Вывод вернёт низкоуровневую информацию об образе или контейнере в формате JSON.

Пример

sudo docker inspect jenkins

Пример вывода:

Из вывода видно, что в разделе “ExposedPorts” упоминаются два порта. Первый — это порт данных 8080, а второй — это порт управления 50000.

Чтобы запустить Jenkins и сопоставить порты, вам необходимо изменить вызов команды Docker run, дописав к нему параметр ‘p’, который определяет отображение портов. Итак, вам нужно выполнить следующую команду:

sudo docker run -p 8080:8080 -p 50000:50000 jenkins

Левая часть сопоставления номеров портов — это порт хоста Docker для сопоставления, а правая — номер порта контейнера Docker.

Когда вы откроете браузер и перейдёте к хосту Docker через порт 8080, то увидите, что Jenkins запущен и работает.

Источник: Docker — Managing Ports

Поддержать проект

Социальные сети проекта:

Подпишись, чтобы ничего не пропустить!