Heim >Backend-Entwicklung >Golang >Warum erhält meine Go-App beim Ausführen in einem Docker-Container die Meldung „Recv-Fehler: Verbindung vom Peer zurückgesetzt'?
Docker-Port-Offenlegungsproblem: Behebung von „Recv-Fehler: Verbindung vom Peer zurückgesetzt“
Beim Versuch, eine Go-App-Binärdatei in einem Docker auszuführen Container können Benutzer auf ein Problem stoßen, bei dem die App keine externen Verbindungen empfängt. Dieser Fehler äußert sich beim Aufruf von Curl-Befehlen als „Recv-Fehler: Verbindung vom Peer zurückgesetzt“.
Die Ursache dieses Problems liegt in der Netzwerkkonfiguration des Containers. Wenn die App innerhalb des Containers ausgeführt wird, wird typischerweise der folgende Befehl verwendet:
http.ListenAndServe("localhost:8081", nil)
Diese Konfiguration ermöglicht jedoch nur den Aufbau von Verbindungen aus dem Container selbst heraus. Um dieses Problem zu beheben und den externen Zugriff auf die App zu ermöglichen, sollte der Befehl wie folgt geändert werden:
http.ListenAndServe(":8081", nil)
Durch Weglassen des Präfixes „localhost“ öffnet sich die App für Verbindungen, die sowohl von innerhalb als auch außerhalb des Containers stammen . Diese Änderung ermöglicht eine ordnungsgemäße externe Kommunikation mit der App, wenn sie in einer Docker-Umgebung ausgeführt wird.
Das obige ist der detaillierte Inhalt vonWarum erhält meine Go-App beim Ausführen in einem Docker-Container die Meldung „Recv-Fehler: Verbindung vom Peer zurückgesetzt'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!