ホームページ >バックエンド開発 >Python チュートリアル >分離された Docker コンテナーで実行すると、Python アプリが何も出力されないのはなぜですか?
分離モード (-d フラグ) の Docker コンテナー内で Python アプリを実行すると、問題が発生する可能性がありますアプリの出力はそうではありません
Python の "print" 関数はバッファリングされた出力を使用します。これは、出力がすぐに stdout ストリームにフラッシュされないことを意味します。デタッチ モードで実行している場合、コンテナ プロセスはメイン スクリプト (main.py) がループを完了した後に終了します。標準出力バッファがまだフラッシュされていないため、出力は失われます。
問題を解決するには、- を使用してバッファなし出力を有効にします。 Dockerfile の CMD 内の Python コマンドでの u フラグ命令:
CMD ["python", "-u", "main.py"]
バッファなし出力では、アプリの出力はすぐに stdout に書き込まれ、デタッチ モードでも Docker ログを使用するときに表示されます:
$ docker run --name=myapp -d myappimage > b82db1120fee5f92c80000f30f6bdc84e068bafa32738ab7adb47e641b19b4d1 $ docker logs myapp > App started > [loop output]
以上が分離された Docker コンテナーで実行すると、Python アプリが何も出力されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。