Docker で gRPC サービスに接続できないのはなぜですか: 「受信失敗: ピアによって接続がリセットされました」

Patricia Arquette
リリース: 2024-11-16 04:36:03
オリジナル
485 人が閲覧しました

Why Can't I Connect to My gRPC Service in Docker:

Docker ポート公開の問題: 「受信失敗: ピアによる接続のリセット」の解決

Docker 環境で問題が発生しましたコンテナ内で実行されている gRPC サービスを公開しようとしているとき。ポート 8081 でリッスンしているサービスは、「受信失敗: ピアによって接続がリセットされました。」というエラーで接続の受信に失敗します。

Docker Compose 構成では、ポート 8081 がコンテナの内部ポートに正しくマップされていますが、問題は次の理由で発生します。 gRPC サーバーがリスニング アドレスにバインドする方法に影響します。デフォルトでは、「http.ListenAndServe("localhost:8081", nil)」を使用すると、サーバーはループバック インターフェイス (127.0.0.1) でのみリッスンします。これは、コンテナ自体内からの接続のみを受け入れることができることを意味します。

この問題を解決するには、すべてのインターフェイスでリッスンするように Go アプリケーションを変更します。これは、代わりに次のコードを使用することで実現できます。

http.ListenAndServe("0.0.0.0:8081", nil)
ログイン後にコピー

「0.0.0.0」を指定すると、サーバーはすべてのネットワーク インターフェイスにバインドされ、ループバック接続と外部接続の両方を受け入れることができるようになります。これにより、コンテナの外部からのリクエストが確実に gRPC サービスに到達できるようになります。

追加メモ:

  • Kubernetes を使用して Docker コンテナを管理している場合、ポート 8081 を公開するサービスに、受信を許可するように構成された正しい NetworkPolicy があることを確認してください。
  • 上記の変更を加えても問題が解決しない場合は、ファイアウォール設定をチェックして、ポートが受信接続に対して開いていることを確認することを検討してください。

以上がDocker で gRPC サービスに接続できないのはなぜですか: 「受信失敗: ピアによって接続がリセットされました」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート