Запуск докера в VPC и доступ к контейнеру с другого компьютера VPC

10

У меня проблемы при запуске докера в AWS VPC.

Вот мои настройки: у меня в VPC работают две машины:

  • 10.0.100.150
  • 10.0.100.151

оба имеют назначенные им эластичные IP-адреса, оба работают в одной подсети с доступом к Интернету.

Допустим, у меня запущен веб-сервер, который обслуживает статические файлы в контейнере на машине 10.0.100.150, в контейнере:

  • IP: 172.17.0.2
  • порт 8111 перенаправляется на порт 8111 на машине.

Я пытаюсь получить доступ к статическим файлам с моей локальной машины (или другой машины, не поддерживающей VPC, также пробовал экземпляр EC2, не запущенный в VPC), и он работает безупречно.

Если я пытаюсь получить доступ к файлам с другого компьютера (10.0.100.151), он зависает. Я использую wget, чтобы вытащить файлы.

Пытался отладить его с помощью tcpdump и ngrep, и я видел, что запрос достигает контейнера. Если я ngrep на хост-машине, я вижу, что запросы поступают, но ответа нет. Если я ngrep на контейнере, я вижу входящие запросы и ответ возвращается.

Я пробовал несколько настроек iptables (с включенной пост-маршрутизацией, с ручной переадресацией портов и т. Д.), Но безуспешно.

Помогите в любом случае - даже указания по отладке очень ценились бы.

Спасибо!

Богдан Газе
источник
Возможный дубликат открытых контейнеров
Docker
Дважды прочитайте статью с открытыми контейнерами Docker для сети VPC, но это совершенно другое.
Богдан Газе
Это? У вас уже отключена проверка IP-адреса источника / назначения на 10.0.100.150?
Майкл - sqlbot
Да, у меня он отключен, а также проверен на другом не по умолчанию VPC, та же ошибка.
Богдан Газе
Можете ли вы перечислить группы безопасности для экземпляров EC2? Похоже, что экземпляры не входят в группу безопасности по умолчанию, чтобы разрешить трафик между другими экземплярами в этой группе безопасности.
Энди Шинн

Ответы:

2

Настроить контейнерную сеть намного проще с помощью weave . Более подробные инструкции по AWS можно найти в блоге проекта .

errordeveloper
источник
Отказ от ответственности: я являюсь частью команды Weaveworks, Inc.
ошибка разработчика
0

Похоже, что экземпляры EC2 не могут обмениваться данными друг с другом, поскольку они не входят в группу безопасности, которая разрешает порт 8111 доступ друг к другу. Убедитесь, что группа безопасности разрешает доступ либо самому себе (и добавляет оба экземпляра EC2 в группу безопасности), либо разрешает подсеть VPC к порту 8111.

Энди Шинн
источник