Выставить докер-контейнеры в сеть vpc

8

У меня на сервере Ubuntu работает докер с одним контейнером. IP-адрес моего сервера 172.31.12.29/20 в моем vpc. Имеются буксирные мосты (docker0 и lxcbr0).

IP-адрес моего контейнера 172.17.0.2/16.

Хост и контейнер могут пинговать себя.

У меня есть другой сервер в моем vpc с 172.31.1.233/20 для IP-адреса. Я просто хочу, чтобы мой получил доступ к моим контейнерам с этого сервера, но я не знаю, как это сделать.

Мои два сервера могут пинговать себя.

Я пытаюсь сделать это, настраивая мою таблицу маршрутов vpc для маршрутизации 172.17.0.0/16 целевых запросов к 172.31.12.29, но это не работает.

Есть идеи ?

Costent
источник

Ответы:

5

Похоже, вам также необходимо отключить проверку IP-адреса источника / назначения на экземпляре, в котором размещены контейнеры (и вам нужен статический маршрут в таблице маршрутов VPC, указывающей на этот экземпляр по идентификатору). Сетевая инфраструктура VPC отбрасывает IP-трафик с IP-адресов, которые не имеют смысла, исходя из того, что инфраструктура знает внутренне об IP-адресах, связанных с каждым экземпляром. Этот параметр изменяет эту функциональность в тех случаях, когда вы применяете его. Если у вас есть экземпляр NAT, вы заметите, что это уже сделано для этого экземпляра, иначе он не сможет перенаправлять внешний трафик в другие экземпляры.

http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-ModifyInstanceAttribute.html

Это также относится к действиям экземпляра в консоли.

Майкл - sqlbot
источник
0

Вы можете открыть порт контейнера (docker run -p 1234: 1234) и подключиться к вашему адресу экземпляров ec2 (10.xyz:1234)

Чтобы избежать жесткого кодирования адресов на стороне потребителя, вы можете использовать шаблон посла: https://docs.docker.com/engine/admin/ambassador_pattern_linking/

Йоханнес Фиш Зимке
источник