Échec d'exposition du port Docker : résolution de « Échec de réception : réinitialisation de la connexion par un homologue »
Lors de la tentative d'exécution d'une application Go dans un conteneur Docker , vous rencontrez l'erreur « Échec de la réception : connexion réinitialisée par un homologue » lors de l'accès à un port exposé. Bien que le mappage des ports soit correctement configuré dans le fichier docker-compose.yaml, l'application reste inaccessible depuis des sources externes.
La cause première de ce problème réside dans la façon dont l'application Go écoute les demandes entrantes. Par défaut, les applications Go se lient à l'interface de bouclage locale ("localhost") lors de l'utilisation de la syntaxe http.ListenAndServe("localhost:8081", nil).
Solution :
Au sein du conteneur Docker, l'application Go doit écouter sur toutes les interfaces disponibles au lieu de se limiter à l'interface de bouclage. Pour y parvenir, modifiez le code suivant dans l'application Go :
// Original code http.ListenAndServe("localhost:8081", nil) // Updated code http.ListenAndServe(":8081", nil)
En supprimant le préfixe "localhost", l'application accepte désormais les connexions provenant à la fois de l'interface de bouclage et de sources externes. Cette modification garantit que l'application est accessible après avoir exposé le port dans le fichier docker-compose.yaml.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!