Heim  >  Artikel  >  Backend-Entwicklung  >  Warum kann ich nicht auf meinen exponierten Docker-Port zugreifen? – Fehlerbehebung „Recv-Fehler: Verbindung vom Peer zurückgesetzt' in Go-Anwendungen

Warum kann ich nicht auf meinen exponierten Docker-Port zugreifen? – Fehlerbehebung „Recv-Fehler: Verbindung vom Peer zurückgesetzt' in Go-Anwendungen

Patricia Arquette
Patricia ArquetteOriginal
2024-11-19 14:17:021021Durchsuche

Why Can't I Access My Exposed Docker Port? - Troubleshooting

Docker-Port-Offenlegungsfehler: Behebung von „Recv-Fehler: Verbindung vom Peer zurückgesetzt“

Beim Versuch, eine Go-Anwendung in einem Docker-Container auszuführen Wenn Sie auf einen offengelegten Port zugreifen, tritt die Fehlermeldung „Recv-Fehler: Verbindung vom Peer zurückgesetzt“ auf. Obwohl die Portzuordnung in der Datei docker-compose.yaml korrekt konfiguriert wurde, bleibt die Anwendung von externen Quellen aus nicht erreichbar.

Die Hauptursache für dieses Problem liegt in der Art und Weise, wie die Go-Anwendung auf eingehende Anfragen lauscht. Standardmäßig binden Go-Anwendungen an die lokale Loopback-Schnittstelle („localhost“), wenn sie die Syntax http.ListenAndServe(„localhost:8081“, nil) verwenden.

Lösung:

Innerhalb des Docker-Containers sollte die Go-Anwendung alle verfügbaren Schnittstellen überwachen, anstatt sich auf die Loopback-Schnittstelle zu beschränken. Um dies zu erreichen, ändern Sie den folgenden Code in der Go-Anwendung:

// Original code
http.ListenAndServe("localhost:8081", nil)

// Updated code
http.ListenAndServe(":8081", nil)

Durch das Entfernen des „localhost“-Präfixes akzeptiert die Anwendung jetzt Verbindungen sowohl von der Loopback-Schnittstelle als auch von externen Quellen. Diese Änderung stellt sicher, dass auf die Anwendung zugegriffen werden kann, nachdem der Port in der Datei docker-compose.yaml verfügbar gemacht wurde.

Das obige ist der detaillierte Inhalt vonWarum kann ich nicht auf meinen exponierten Docker-Port zugreifen? – Fehlerbehebung „Recv-Fehler: Verbindung vom Peer zurückgesetzt' in Go-Anwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn