Docker ポート公開の問題: 「受信失敗: ピアによって接続がリセットされました」エラー
内で Go アプリのバイナリを実行しようとするとエラーが発生するDocker コンテナーを作成し、マップされたポート経由でそれにアクセスすると、「受信失敗: ピアによる接続のリセット」エラーが発生する場合があります。これは、ポート マッピングまたはアプリケーションの内部構成に問題があることを示しています。
この問題は、アプリケーションが gRPC リスニング エンドポイントに「localhost:8081」のような IP アドレスを指定した場合に発生します。コンテナ内で実行する場合、この設定ではコンテナ自体内からの接続のみが許可されます。
解決策: ホスト全体のリスニングを使用する
この問題を解決するには、次の設定を行う必要があります。アプリケーションを「localhost」ではなく、利用可能なすべてのホスト インターフェイスにバインドします。これは、リッスン呼び出しで IP アドレスを単に省略するだけで実現できます。
http.ListenAndServe(":8081", nil)
これを行うと、アプリケーションはポート 8081 を持つすべてのインターフェイスでのリッスンを開始し、コンテナー内外からの接続を許可します。これにより問題が解決され、gRPC エンドポイントへの外部アクセスが可能になります。
以上がDocker コンテナがマップされたポートにアクセスすると「受信失敗: ピアによって接続がリセットされました」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。