2016-10-11 7 views
0

で書かれたログが表示されない:ドッカーは、私はいくつかのドッキングウィンドウコンテナを開始したの/ dev/stdoutを

docker-compose logs -f web 

が、私が書く場合は:(ここではdocker-compose.yml

docker-compose up -d 

をして、別のシェルで:

docker-compose exec web echo "hello" >> /dev/stdout 

ライブログ画面に何も表示されません。 他のコンテナと同じです。どうして?私は何か間違っているのですか?

答えて

2

/dev/stdoutは、プロセスごとに異なります。 docker-compose logsには、PID 1プロセスの出力のみが表示され、そのコンテナーの名前空間で実行される他のプロセスは表示されません。

アップデート:また、注意してください。プロセスが標準出力に書き込みますので

  • >> /dev/stdoutがコンテナ
  • >> /dev/stdout内にないecho "hello"に...ホスト上のdocker compose exec web echo "hello"に適用されることは無操作の一種でありますデフォルトでは.. >>(追加)は、上書き/置き換え可能な既存の出力がないため、>(リダイレクト)と同じです。
+0

だから私は、ログインするためにしなければならないべきか'docker-compose logs'を介して読んでいますか?ありがとうございました –

+1

私は殴られることはありますが、...私はあなたがそれをすることはできないと言うつもりです。あなたがそれを行う方法を見つけることができれば、それは本当にやってはならない醜いハックのようなものです。私があなただったら、なぜ私がこれを達成したいのか、根底にある問題に対する代替の解決策があるのか​​どうか、自分自身に尋ねています。 – boyvinall

0

バーチャルホストの設定内にこれを入れて解決:

CustomLog /proc/self/fd/1 combined 
ErrorLog /proc/self/fd/2 

ので、ドッキングウィンドウ上のログを表示するためには、あなたが使用することができます/proc/self/fd/1/proc/self/fd/2

関連する問題