Как перенаправить порт в Docker

Kak Perenapravit Port V Docker



Docker — это популярная платформа докеризации, которая фиксирует приложения и программное обеспечение в изолированной среде, известной как контейнер. При выполнении приложений в контейнерах пользователям обычно требуется доступ к контейнерному приложению вне контейнера. Для этой цели пользователям необходимо применить технику переадресации портов.

Переадресация портов в Docker — это процесс, который позволяет нам предоставить доступ к порту контейнера в хост-системе Docker. Это позволяет нам запускать приложение в изолированной среде, а также делать его доступным снаружи контейнера на пользовательском компьютере.

Этот пост продемонстрирует:







Как перенаправить порт в Docker, используя тег «-p» или «-publish»

Чтобы перенаправить порт в Docker, пользователю необходимо опубликовать порт контейнера на хосте Docker. Для этого запустите контейнер на хосте докера, используя команду « -п ' или ' -публиковать тег в теге « запуск докера команда.



Для правильной демонстрации следуйте приведенным ниже инструкциям.



Шаг 1: Создайте Dockerfile

Сначала создайте файл и задайте его имя как « Докерфайл ». Этот файл содержит текстовые инструкции по созданию шаблона контейнера Docker. Например, давайте закрепим простую программу на Golang, используя приведенный ниже фрагмент в Dockerfile:





ИЗ Голанга: 1,8

РАБОЧИЙ ДИАПАЗОН / идти / источник / приложение

КОПИРУЙТЕ main2.go.

БЕГИТЕ, идите строить веб сервер .

РАЗОБЛАЧАТЬ 8080

КМД [ './веб сервер' ]

В данном фрагменте:

  • « ОТ Команда «используется для установки базового изображения.
  • « РАБОЧИЙ ДИАПАЗОН » определяет рабочий каталог контейнера.
  • « КОПИРОВАТЬ Команда ” создаст копию программного файла по пути, указанному контейнером.
  • « БЕГАТЬ ” выполнит указанную команду в контейнере.
  • « РАЗОБЛАЧАТЬ Команда » указывает порт, на котором будет прослушиваться контейнер.
  • « КМД » указывает исполняемые точки контейнера.

Шаг 2. Создайте программу на Голанге

Затем создайте еще один файл с именем « main2.go » и вставьте приведенную ниже программу Golang, которая печатает простую строку на порту « 8080 »:



пакет основной

Импортировать (

'ФМТ'

'бревно'

'сеть/http'

)

обработчик функций ( В http.ResponseWriter, г * http.Запрос ) {

html := `

ДОКТИП html >

< HTML >

< голова >

< заголовок > Привет, Голанг ! заголовок >

< стиль >

тело {

фоновый цвет: #D2B48C;

}

.контейнер {

выравнивание текста: по центру;

отступ: 50 пикселей;

}

стиль >

голова >

< тело >

< div сорт '=' 'контейнер' >

< ч1 > Привет ! Добро пожаловать в учебник LinuxHint ч1 >

div >

тело >

HTML >`

w.Header ( ) .Набор ( 'Тип содержимого' , 'текст/html' )

fmt.Fprint ( В , HTML )

}

главная функция ( ) {

http.HandleFunc ( '/' , обработчик )

журнал.Фатальный ( http.ListenAndServe ( '0.0.0.0:8080' , ноль ) )

}

Шаг 3. Создайте снимок контейнера

Теперь создайте снимок контейнера из указанного выше файла Dockerfile. Для этого сначала перейдите в каталог, в котором создан файл Dockerfile, используя команду « cd <путь к рабочему каталогу> » команда:

Затем сгенерируйте новый образ контейнера с помощью данной команды:

сборка докера голанг-img .

Данный результат показывает, что образ создается в соответствии с предоставленным контекстом сборки.

Шаг 4. Переадресация хост-порта на порт контейнера

Теперь запустите контейнер и перенаправьте порт хоста на порт контейнера, чтобы получить доступ к приложению dockerize вне контейнера на локальном компьютере. Для этого запустите «docker run –name -p : » команда:

запуск докера --имя продолжать -п 8080 : 8080 Голанг-IMG

Здесь « -п Флаг «используется для публикации порта выполнения контейнера на хосте докера:

Шаг 5: Проверка

Для проверки просмотрите запущенные контейнеры, используя « докер, пс »:

докер пс

В приведенном ниже результате контейнерное приложение прослушивает доступные сетевые интерфейсы. 0.0.0.0 ” на опубликованном порте “ 8080 ». Это означает, что порт перенаправляется работающему приложению на хост-компьютере:

Теперь запустите браузер и перейдите к « http://localhost:8080/ » и проверьте, применяется ли метод переадресации портов и доступно ли контейнерное приложение за пределами контейнера в хост-системе:

Здесь мы успешно перенаправили порт хоста на порт контейнера, и приложение доступно на хосте докера.

Как перенаправить порт в Docker с помощью Docker Compose

Чтобы перенаправить порт контейнера на хост для доступа к контейнерному приложению снаружи контейнера, пользователь может использовать команду « порт » в файле Compose yaml. Docker Compose — это служба Docker, которая позволяет нам запускать разные службы и приложения в разных контейнерах. Используя ' docker-compose.yml », пользователь также может перенаправить порт контейнера на хост-компьютер и подключить приложение к внешнему миру.

Ознакомьтесь с приведенной ниже процедурой для иллюстраций.

Шаг 1: Создайте файл создания

Сначала создайте файл с именем « docker-compose.yml » и добавьте в файл следующее содержимое:

версия: '3'

услуги:

сеть:

строить: .

порты:

- 8080 : 8080

В приведенном выше фрагменте « порты Ключ «используется для подключения хоста к порту контейнера. Здесь первое значение — это порт хоста, а второе значение — порт контейнера.

Шаг 2. Запустите приложение.

После указания инструкций в файле компоновки запустите приложение в контейнере с помощью команды « докер-составить » команда:

докер-составить

Шаг 3: Проверка

Для проверки перечислите контейнеры создания, используя « docker-compose PS » команда:

docker-compose пс

Чтобы проверить, доступен ли контейнер на хост-компьютере, перейдите к « http://localhost:8080/ URL-адрес. Здесь вы можете видеть, что мы эффективно перенаправили порт контейнера на хост:

Как перенаправить порт в определенную сеть

Чтобы перенаправить порт контейнера в определенную сеть, пользователю необходимо указать сеть, в которой он хочет получить доступ к контейнеру, используя параметр « -сеть ' вариант. Посмотрите на данные шаги для демонстрации.

Шаг 1: Создайте сеть

Создайте новую сеть, используя « сеть докеров создает <сетевое имя> команда. По умолчанию эта сеть будет использовать драйвер моста:

сеть докеров создать сеть mygo

Для просмотра сетей Docker используйте команду « сеть докеров ls » команда:

сеть докеров лс

Здесь мы успешно создали « mygo-сеть », который использует « мост ' Водитель:

Шаг 2. Составьте карту сети

Чтобы запустить контейнер и получить доступ к нему в конкретной сети с использованием метода переадресации портов, используйте следующую команду:

запуск докера -п 8080 : 8080 --сеть mygo-сеть в golang-img

В данной команде « -п Опция публикует контейнер на указанном порту указанной сети. Здесь « -сеть Опция » используется для определения сети докера:

Для проверки снова перейдите к « http://localhost:8080 » порт и проверяем, доступен ли контейнер в указанной сети или нет:

Приведенный выше вывод показывает, что мы эффективно перенаправили порт контейнера в определенную сеть.

Примечание: При использовании «хостовой» сети пользователю не нужно публиковать порт из контейнера на хост с помощью « -п ' или ' -публиковать ' вариант.

Перенаправить порт в определенную сеть с помощью Docker Compose

Добавьте следующий фрагмент в файл « docker-compose.yml ' файл. В приведенном ниже фрагменте « сети Ключ ” используется для указания сети:

версия: '3'
услуги:

сеть:
строить: .
порты:
- 8080 : 8080

Теперь запустите приложение в контейнере, используя команду « докер-составить » команда:

докер-составить

Мы рассмотрели методы переадресации портов в Docker.

Заключение

Чтобы перенаправить порт в Docker для доступа к приложению dockerize за пределами контейнера, пользователь может использовать команду « -п ' или ' -публиковать опция в разделе « запуск докера ” или пользователь может использовать команду “ порты » в файле создания Docker. Чтобы получить доступ к контейнеру в определенной сети, пользователь может перенаправить порт контейнера в сети, используя команду « --network <сеть> ' вариант. В этом блоге продемонстрированы методы перенаправления портов в Docker.