Ich habe Probleme beim Ausführen von Docker in AWS VPC.
Hier ist mein Setup: In VPC laufen zwei Computer:
- 10.0.100.150
- 10.0.100.151
Beide haben elastische IPs zugewiesen, beide laufen im selben internetfähigen Subnetz.
Angenommen, ich verwende einen Webserver, der statische Dateien in einem Container auf dem 10.0.100.150-Computer des Containers bereitstellt:
- IP: 172.17.0.2
- Port 8111 wird am 8111-Port der Maschine weitergeleitet.
Ich versuche, von meinem lokalen Computer aus auf die statischen Dateien zuzugreifen (oder ein anderer Nicht-VPC-Computer hat auch eine EC2-Instanz ausprobiert, die nicht in der VPC ausgeführt wird), und sie funktioniert einwandfrei.
Wenn ich versuche, vom anderen Computer (10.0.100.151) auf die Dateien zuzugreifen, hängt sie. Ich benutze wget, um die Dateien zu ziehen.
Es wurde versucht, es mit tcpdump und ngrep zu debuggen, und ich habe gesehen, dass die Anforderung den Container erreicht. Wenn ich auf dem Host-Computer ngrep mache, werden die Anforderungen eingehen, aber keine Antwort zurück. Wenn ich auf dem Container ngrep bin, sehe ich, dass die Anfragen eingehen und die Antwort zurückgeht.
Ich habe mehrere Iptables-Setups ausprobiert (mit aktiviertem Postrouting, manuellem Weiterleiten von Ports usw.), aber keinen Erfolg.
Hilfe in irgendeiner Weise - selbst das Debuggen von Anweisungen wäre sehr willkommen.
Vielen Dank!
quelle
Antworten:
Das Einrichten eines Containernetzwerks ist mit dem Weben viel einfacher . Weitere AWS-spezifische Anweisungen finden Sie im Blog des Projekts .
quelle
Dies klingt so, als könnten die EC2-Instanzen nicht miteinander kommunizieren, da sie sich nicht in einer Sicherheitsgruppe befinden, die den Zugriff von Port 8111 untereinander ermöglicht. Stellen Sie sicher, dass die Sicherheitsgruppe den Zugriff entweder auf sich selbst zulässt (und beide EC2-Instanzen zur Sicherheitsgruppe hinzufügt) oder dass das VPC-Subnetz Port 8111 zulässt.
quelle