LINUX.ORG.RU
решено ФорумAdmin

Работа Docker контейнеров через разные внешние сети

 , ,


0

1

Добрый день! На Ubuntu 18.04 установлен Docker. На машине 2 внешних сетевых подключения ens3 и ens7. Как заставить Docker контейнеры работать через определенные внешние IP (через ens3, либо ens7 по моему усмотрению)?

Примерная схема чего хочу

ifconfig:

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:19:91:e3:8b  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.9  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::f816:3eff:fee3:f6d6  prefixlen 64  scopeid 0x20<link>
        ether fa:16:3e:e3:f6:d6  txqueuelen 1000  (Ethernet)
        RX packets 7379  bytes 5360093 (5.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6466  bytes 936844 (936.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens7: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.1.13  netmask 255.255.255.0  broadcast 10.0.1.255
        inet6 fe80::f816:3eff:fe50:9fab  prefixlen 64  scopeid 0x20<link>
        ether fa:16:3e:50:9f:ab  txqueuelen 1000  (Ethernet)
        RX packets 900  bytes 76745 (76.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2317  bytes 209220 (209.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1740  bytes 133288 (133.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1740  bytes 133288 (133.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


Как заставить Docker контейнеры работать через определенные внешние IP

Смотря что имеется под этим описание в виду. По схеме ничего не понятно.

В общем случае можно биндить интерфейс хоста к контейнеру по IP

ports:
      - 10.0.0.9:5432:5432
      - 10.0.1.13:80:80
vvn_black ★★★★★ ()
Ответ на: комментарий от vvn_black

Смотря что имеется под этим описание в виду. По схеме ничего не понятно.

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

firkax ★★★ ()
Ответ на: комментарий от firkax

Тогда создаётся сеть в докере и ей назначается гейтвей, в документации это есть.

vvn_black ★★★★★ ()

Всем спасибо, разобрался!

kmer ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.