2016-04-24 10 views
6

私は、ナンシーで書かれたWeb APIをホストするドッキング用のコンテナを持っています。ここでは、コンテナが最初に解雇されたときのWeb要求が行われた後に発生する例外です:Web要求が行われたときにDocker nancy - ホストへのルートなし

4/22/2016 2:40:50 PM at API.SearchModule+<SearchModule>c__AnonStorey0.<>m__0 (System.Object _) <0x41380aa0 + 0x00850> in <filename unknown>:0 
    4/22/2016 2:40:50 PM at (wrapper dynamic-method) System.Object:CallSite.Target (System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Func`2<object, object>,object) 
    4/22/2016 2:40:50 PM at Nancy.Routing.Route+<>c__DisplayClass4.<Wrap>b__3 (System.Object parameters, CancellationToken context) <0x4133d350 + 0x00166> in <filename unknown>:0 
    4/22/2016 2:40:50 PM2016-04-22 13:40:50,177 ERROR: System.Net.WebException: Error: ConnectFailure (No route to host) ---> System.Net.Sockets.SocketException: No route to host 
    4/22/2016 2:40:50 PM at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) <0x41374320 + 0x001b8> in <filename unknown>:0 
    4/22/2016 2:40:50 PM at System.Net.WebConnection.Connect (System.Net.HttpWebRequest request) <0x41372b50 + 0x00609> in <filename unknown>:0 

アプリクエリはelasticsearchは、最初に私はそれができなかったので、それが吹いたと思いました弾力性(別のドッカーコンテナ)を見つけることができますが、弾力性を停止すると、ローカルではそうではないように見えますが、APIはリクエストを処理し続けますが、例外はスローされます。エラスティックがオンラインに戻ると、APIは例外なく今回もリクエストを処理し続けます。

奇妙なことは、ドッカーコンテナが再び再起動され、APIに対するWeb要求が弾力性を照会するのに成功した場合です。

この問題はローカルで複製できますので、修正プログラムを試すことができますか?私は、ローカルで弾力的にオフラインで実行すると同じエラーが発生すると思っていましたが、これはネットワーク接続の問題の一種だと思わせるケースではないようです。

あなたはどう思われますか?

+0

docker link機能を使用して、アプリとelasticsearchコンテナをリンクしていますか?はいの場合、env varsまたはhostname経由でelasticにどのように接続しますか? – jazgot

+0

使用しているドッカーのバージョンは何ですか?どのホストに? – VonC

+0

作成ファイルの内容(使用している場合)と、コンテナの実行に使用しているコマンドを投稿します。 – johnharris85

答えて

1

これはDNSの問題です。ドッカーのコンテナは、指定されたURL(ホスト)のIPアドレスを解決できません。

オプションhttps://docs.docker.com/engine/reference/run/#network-settingshttps://docs.docker.com/engine/reference/run/#network-settings)を参照するか、ドッカーの画像/コンテナ内にresolv.confファイルを修正してください。

+0

ありがとうございました、なぜそれがDNSの問題であれば再起動したときに動作するのですか? –

関連する問題