状況
バックグラウンドで動いているコンテナ api のエラーを追いたい。アプリはログを標準出力に出している。
直近 100 行を表示し、その後も追い続けるコマンドは?
正答
- docker logs -f --tail 100 api
- docker exec api tail -f -n 100 /var/log/app.log
- docker logs api | tail -n 100
- docker attach api
解説
アプリが標準出力・標準エラーに出したログは Docker が保持し、docker logs で読める。-f(--follow)で新しい出力を追い続け、--tail 100 で直近 100 行から表示する。docker logs api | tail -n 100 は直近 100 行を出して終わり、追い続けない。exec で tail する方法は、ログを標準出力に出しているアプリではそのファイルが無いことが多い。docker attach は本体のプロセスの入出力につなぐ操作で、過去のログは出ず、Ctrl+C で本体のプロセスを止めてしまう危険もある。
参考: docs.docker.com
この問題を含む Docker のテストを制限時間つきで解く
Dockerクイズへ