使用するdocker-compose upと、docker-compose.ymlファイル内のすべてのコンテナのログを確認できます。
ただし、使用するdocker-compose run appと、コンソール出力のみが表示されapp、app依存するサービスは表示されません。他のサービスのログ出力をどのように確認できますか?
使用するdocker-compose upと、docker-compose.ymlファイル内のすべてのコンテナのログを確認できます。
ただし、使用するdocker-compose run appと、コンソール出力のみが表示されapp、app依存するサービスは表示されません。他のサービスのログ出力をどのように確認できますか?
docker-compose run実行するたびに新しいコンテナが作成されることにも注意してください。
docker-compose run、それは新しいコンテナを作成した場合だけそのいいので、私のテストを実行するためにcircleciに。主な問題は、依存サービスからのログ出力が表示されないことです。
回答:
docker-compose logs <name-of-service>
ドキュメントから:
使用法:ログ[オプション] [サービス...]
オプション:
--no-colorモノクロ出力を生成します。
-f、-followログ出力をフォローします。
-t、-timestampsタイムスタンプを表示します。
--tail = "all"各コンテナのログの最後から表示する行数。
Dockerコンポーズをデタッチモードで開始し、後ですべてのコンテナーのログにアタッチできます。ログの監視が終了したら、サービスをシャットダウンせずにログ出力から自分自身を切り離すことができます。
docker-compose up -dを開始するために使用します(-d)(デタッチモードではログは表示されません)docker-compose logs -f -tする添付のログに自分自身を実行中のすべてのサービスに対し、-fログ出力とフォロー手段-tオプションは(参照タイムスタンプ与えドッカー参照)Ctrl + zまたはCtrl + cを使用して、実行中のコンテナをシャットダウンせずにログ出力から自分自身を切り離します単一のコンテナのログに関心がある場合は、docker代わりにキーワードを使用できます。
docker logs -t -f <name-of-service>出力をファイルに保存するには、logsコマンドに以下を追加します。
docker-compose logs -f -t >> myDockerCompose.logdocker-compose runとに記載されているサービスからユニークな名前持っているそれらのサービスにアタッチdocker.compose.yml
ターミナル内のすべてのサービスからの出力ログを表示する場合。
docker-compose logs -t -f --tail <no of lines>
例:すべてのサービスからの最後の5行の出力をログに記録したいとします
docker-compose logs -t -f --tail 5
特定のサービスからの出力をログに記録する場合は、次のように実行できます。
docker-compose logs -t -f --tail <no of lines> <name-of-service1> <name-of-service2> ... <name-of-service N>
使用法:
例えば。APIとポータルサービスがあるとすると、次のようなことができます。
docker-compose logs -t -f --tail 5 portal apiここで、5は両方のログの最後の5行を表します。
参照:https://docs.docker.com/v17.09/engine/admin/logging/view_container_logs/
docker-compose up -ddocker psdocker logs <containerid>残念ながら、とはdocker-compose logs別に実行する必要がありますdocker-compose run。これを確実に機能させるには、docker-compose run終了ステータスを抑制してから、ログをリダイレクトし、正しいステータスで終了する必要があります。
#!/bin/bash
set -euo pipefail
docker-compose run app | tee app.log || failed=yes
docker-compose logs --no-color > docker-compose.log
[[ -z "${failed:-}" ]] || exit 1
docker-compose logs -f service_name