2016-08-19 9 views
1

の内側に戻っていません)を容器に取り付けた後netcatをインストールします。のnetcatは、単純なシナリオドッキングウィンドウ

cat data/appendonly.aof | nc redis 6379 

は、しかし私は、NCが終了していない、Redisのサーバーから+OK Sを取得し、ただそこにハングアップします。これは通常のLinux/Unix環境下では問題なく動作しますが、なぜドッカーコンテナに詰まっているのか分かりません。

答えて

3

-qフラグを使用して、ncを終了することができます。N秒(標準偏差)

が比較:

echo PING | nc redis 6379 

で:

echo PING | nc -q0 redis 6379 

付:私の環境では

echo PING | nc -q1 redis 6379 

、最初のハングは、あなたが説明するように、第二の出口までに取得しますサーバーからの応答、そして3番目のメッセージは私に+PONG redisからの応答。

これは明らかに、赤字がどれくらいの時間応答するかを事前に知ることができないため、理想的ではないため、少し時間をずらしてプレーしなければならない場合があります。ただし、両方、私は-w`フラグがタイムアウトするために `使用

[[email protected] /]# echo PING | ncat redis 6379 
+PONG 
+0

私はnetcatをのNMAPバージョン(ncathttps://nmap.org/ncat/は)もっとまともな方法で「箱の外」に振る舞うように見えることに気づきます私の解決策とあなた自身(あなたがあなた自身でそれを言及したように)は本当に満足できるものではなく、なぜそれが戻ってこないのかまだ分かりません。 ncat提案の+1! –

+0

'ncat'は問題を解決します。私はこの質問に、 'nc'がなぜドッカーで失敗するのか誰かが知っているかどうかを知るために2,3日を与えるでしょう。 –