У меня возникают проблемы при запуске докера в 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.