Docker in VPC ausführen und von einem anderen VPC-Computer auf Container zugreifen

10

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!

Bogdan Gaza
quelle
Mögliches Duplikat von Docker-Containern für das VPC-Netzwerk verfügbar machen
Michael - sqlbot
Lesen Sie den Beitrag doppelt, indem Sie Docker-Container dem VPC-Netzwerk aussetzen, aber das ist völlig anders.
Bogdan Gaza
Ist es? Haben Sie die Quell- / Ziel-IP-Prüfung bereits am 10.0.100.150 deaktiviert?
Michael - sqlbot
Ja, ich habe es deaktiviert und auch auf einer anderen nicht standardmäßigen VPC getestet, dem gleichen Fehler.
Bogdan Gaza
Können Sie die Sicherheitsgruppen für die EC2-Instanzen auflisten? Dies scheint so, als ob sich die Instanzen nicht in der Standardsicherheitsgruppe befinden, um Datenverkehr zwischen anderen Instanzen in dieser Sicherheitsgruppe zuzulassen.
Andy Shinn

Antworten:

2

Das Einrichten eines Containernetzwerks ist mit dem Weben viel einfacher . Weitere AWS-spezifische Anweisungen finden Sie im Blog des Projekts .

Fehlerentwickler
quelle
Haftungsausschluss: Ich bin Teil des Weaveworks, Inc.-Teams.
Fehlerentwickler
0

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.

Andy Shinn
quelle