MacOSで実行しています。net.socket()を使用してnode.jsアプリケーションからCentOSの下にC++ソケットサーバーを含む同じホストで動作するDockerコンテナに接続しています。ドッカーのコマンドを実行している:Dockerへのソケット接続が最初に成功した後に失敗しました
docker run -it --rm -p 14000-14010:14000-14010 -v /Users/me/Development/spdz:/spdz spdz/spdzdev
ドッキングウィンドウでC++サーバがない実行されているとき、私はノードに成功接続はソケットクローズメッセージによって後で3msのに続い参照してください。
コンテナの前にあるプロキシが要求を受け入れているように見えますが、Dockerに渡して拒否されます。しかし、これは接続が成功したと思う私のフロントエンドのアプリケーションで誤ったメッセージにつながります。
私は単純な接続が拒否されたことを確認したいと思います。これがどのように矯正され、より良く理解されるかについての示唆は有用であろう。
Dockerの外でコンポーネントを実行すると接続時に予期せぬ即時障害が発生するため、この動作がDockerによって導入されたと確信しています。また、エクスポートされたポートをlocalhostではなく外部のネットワークインターフェイスにマッピングしようとしましたが、同じ動作が見られます。
どのようなプロキシを使用していますか?そのプロキシのログをいくつか提供できますか? – Shawyeok
私はプロキシを実行していません、私はこの動作がDockerによって導入されたと思います。私の現在の理解は、Dockerがリクエストをコンテナに転送するブリッジネットワークを導入したことです。私はこの動作の原因となるドッカープロキシ(http://windsock.io/tag/docker-proxy/を参照)に出くわしました。 – Jonathan
1.クライアントとサーバの両方で 'port 14000 or port 14001 or port .... 'のような' tcpdump'を使って監視してください。 2.サーバマシンのlisten状態を 'netstat'で確認してくださいOS) –