Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

Спасибо!

Настроить контейнерную сеть намного проще с ткать. Дополнительные инструкции для AWS см. В блог проекта.

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