Mam problemy podczas uruchamiania dokera w AWS VPC.
Oto moja konfiguracja: Mam dwie maszyny działające w VPC:
- 10.0.100.150
- 10.0.100.151
oba mają przypisane elastyczne adresy IP, oba działają w tej samej podsieci z dostępem do Internetu.
Załóżmy, że korzystam z serwera WWW, który obsługuje pliki statyczne w kontenerze na komputerze 10.0.100.150, kontenerze:
- IP: 172.17.0.2
- port 8111 jest przekazywany przez port 8111 na komputerze.
Próbuję uzyskać dostęp do plików statycznych z mojego komputera lokalnego (lub inny komputer inny niż VPC próbował również instancji EC2 nie działającej w VPC) i działa bezbłędnie.
Jeśli spróbuję uzyskać dostęp do plików z innego komputera (10.0.100.151), zawiesi się. Używam wget do pobierania plików.
Próbowałem debugować go za pomocą tcpdump i ngrep. Widziałem, że żądanie dociera do kontenera. Jeśli wykonam polecenie ngrep na maszynie hosta, widzę, że żądania przychodzą, ale odpowiedź nie wraca. Jeśli wykonam polecenie w kontenerze, widzę, że żądania nadchodzą, a odpowiedź wraca.
Próbowałem wielu konfiguracji iptables (z włączonym routingiem, z ręcznie przesyłanymi portami itp.), Ale bez powodzenia.
Pomoc w jakikolwiek sposób - nawet wskazówki debugowania byłyby mile widziane.
Dzięki!
źródło
Odpowiedzi:
Konfiguracja sieci kontenerowej jest znacznie łatwiejsza dzięki splotowi . Więcej instrukcji dotyczących AWS znajduje się na blogu projektu .
źródło
Wygląda na to, że instancje EC2 nie mogą się ze sobą komunikować, ponieważ nie należą do grupy zabezpieczeń, która zezwala na dostęp do portu 8111. Sprawdź, czy grupa zabezpieczeń zezwala na dostęp do siebie (i dodaje obie instancje EC2 do grupy zabezpieczeń) lub czy pozwala podsieci VPC na port 8111.
źródło