リモートで実行されるコマンドを介してDockerコンテナからリアルタイムの標準出力を取得します。

リモートで実行されるコマンドを介してDockerコンテナからリアルタイムの標準出力を取得します。

入手しようとしていますリアルタイム標準出力ドッカーコンテナ内で実行するコマンドで。ただし、他のホストで実行されているリモートコマンドを介してこれを行う必要があります。

DockerホストにいるときにDockerコマンドを実行し-it、必要なリアルタイム出力を取得できます。しかし、私はこの制限があります。持つコマンドをリモートで実行すると、以前の解決策は役に立ちません。-t端末がまったくないため、リモートコマンドには存在しない$TERMベースの擬似端末を実行するため、使用できません。

-dまた、バックグラウンドで実行するためにdockerコマンドを実行してみましたが、docker logs -f <container>プロセスが終了すると、一度に出力が提供されます。

これが他のスタックに属している場合は、どんな解決策や提案でも感謝して修正します。

答え1

Dockerのgithubのヘルプでこれを見つけました。コンテナでPythonスクリプトを実行しようとしているという事実については言及していませんが、それは重要ではないと思います。

これは実際にDockerの問題ではなく、Pythonの問題です。私は学んだDockerはすでにリアルタイムの標準出力を提供しています。。 Pythonはすべての標準出力をバッファに保存し、スクリプトが完了するまでフラッシュしません。コードに-t

dockerコマンドで必要なのは、python -u <script>Pythonがstdoutをバッファリングしないようにスクリプトを呼び出すことだけです。

答え2

その場合、ELKスタックとLogsproutを使用すると、すべてのDockerコンテナからリアルタイムのログを取得し、ログやその他の便利なエントリ内で検索できます。

関連情報