Подтвердить что ты не робот

Как я могу привязать контейнер докера к определенному внешнему интерфейсу

У меня есть сетевые интерфейсы, eth0 и eth1,

Как я могу привязать весь контейнер докеров к eth1, и пусть весь сетевой трафик выходит и через eth1

Спасибо ~

Обновление

Я попытался связать с eth1 с помощью 133.130.60.36.

Но мне все равно не повезло, я все равно получаю eth0 IP как публичный IP-адрес в контейнере. сетевой поток не выходит через eth1

➜  ~  docker run -d --name Peach_1 -p 133.130.60.36::9998 -ti sample/ubuntu-vnc-selenium-firefox

➜  ~  docker ps
CONTAINER ID        IMAGE                                 COMMAND                CREATED             STATUS              PORTS                                     NAMES
eb28f0d1c337        sample/ubuntu-vnc-selenium-firefox   "/opt/bin/run_sele_s   4 minutes ago       Up 4 minutes        5901/tcp, 133.130.60.36:32768->9998/tcp   Peach_1

➜  ~  docker exec -ti Peach_1 zsh

➜  /  curl ipecho.net/plain ; echo
133.130.101.114
4b9b3361

Ответ 1

Вот что-то из докера документации

https://docs.docker.com/v17.09/engine/userguide/networking/default_network/binding/

Если вы хотите быть более строгим и разрешить только контейнерные сервисы связаться через определенный внешний интерфейс на хосте Машина, у вас есть два варианта. Когда вы вызываете Docker Run, вы можете использовать либо -p IP:host_port:container_port, либо -p IP::port, чтобы указать внешний интерфейс для одной конкретной привязки. Или, если вы всегда хотите, чтобы переадресация портов Docker связывалась с одним конкретным IP-адресом, вы можете отредактировать общесистемный сервер Docker. настройки и добавьте опцию --ip=IP_ADDRESS. Не забудьте перезапустить ваш Docker сервер после редактирования этого параметра.