Как настроить проброс порта 80 на контейнере с двумя сетевыми интерфейсами?

Проброс порта - это процесс, который позволяет перенаправлять трафик внешней сети внутрь контейнера. В случае наличия двух сетевых интерфейсов, нужно настроить проброс порта 80 с соответствующим интерфейсом, чтобы контейнер мог обрабатывать HTTP-запросы.

Шаг 1: Проверить наличие двух сетевых интерфейсов

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

ip addr show

Команда отобразит все сетевые интерфейсы на сервере. Их названия начинаются с eth, enp, eno, ens или eno. Проверьте, присутствуют ли на сервере два сетевых интерфейса.

Шаг 2: Настроить проброс порта

  1. Создайте сетевой мост командой:

    sudo docker network create -d bridge my-bridge-network
    
  2. Запустите контейнер с двумя сетевыми интерфейсами, используя опцию --network my-bridge-network. Эта опция добавит контейнер в созданный мост.

    sudo docker run -d --name my-container --network my-bridge-network ubuntu:latest sleep 3600
    
  3. Используйте команду docker network inspect my-bridge-network для определения IP-адресов контейнеров, которые находятся в той же сети.

  4. Определите IP-адрес контейнера, у которого необходимо пробросить порт. Вы можете найти его в выводе команды docker network inspect.

  5. Запустите контейнер и пробросьте порт командой:

    sudo docker run -d -p 80:80 --net my-bridge-network --ip <ip-address> nginx
    

    Вместо <ip-address> укажите IP-адрес контейнера.

  6. Теперь вы можете обращаться к контейнеру по его проброшенному порту. Откройте браузер и введите http://192.168.1.1:80 (тут и далее адрес 192.168.1.1 замените на адрес вашего сервера).

Чтобы пробросить порт на другой интерфейс, вам нужно задать соответствующий IP-адрес контейнера через опцию --ip. Например, для интерфейса eth1 команда будет выглядеть так:

sudo docker run -d -p 80:80 --net my-bridge-network --ip 192.168.1.2 nginx

Где 192.168.1.2 - IP-адрес контейнера на eth1.

Заключение

Проброс портов - это полезный инструмент, который помогает связывать внешнюю сеть с контейнерами. Соответствующая настройка IP-адресов и опций сети позволит настроить проброс порта 80 на контейнере с двумя сетевыми интерфейсами и использовать его в работе.

Смотри также: