У меня проблемы при запуске докера в 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 (с включенной пост-маршрутизацией, с ручной переадресацией портов и т. Д.), Но безуспешно.
Помогите в любом случае - даже указания по отладке очень ценились бы.
Спасибо!
источник
Ответы:
Настроить контейнерную сеть намного проще с помощью weave . Более подробные инструкции по AWS можно найти в блоге проекта .
источник
Похоже, что экземпляры EC2 не могут обмениваться данными друг с другом, поскольку они не входят в группу безопасности, которая разрешает порт 8111 доступ друг к другу. Убедитесь, что группа безопасности разрешает доступ либо самому себе (и добавляет оба экземпляра EC2 в группу безопасности), либо разрешает подсеть VPC к порту 8111.
источник