LoginSignup
2
0

More than 1 year has passed since last update.

Dockerでデュアルロギングができるようになっていた件

Last updated at Posted at 2021-05-13

結論

Docker 20.10からロギングドライバを json-file / journald 以外にしても、
docker logs コマンドでコンテナログが見れます。(デュアルロギングというらしい)

詳細はこちら

背景

Dockerコンテナのログを見るコマンドとして docker logs がありますが、
例えばログをAWSやGCPに流したいとか、Fluentdに流したいとすると
「ロギング・ドライバ」というものを変更すればよいとのことでした。

そこで、「docker ロギングドライバ」とググると、以下のページに辿りつきます。(2021年5月時点)

ロギング・ドライバの設定(Docker-docs-ja 19.03)

このページを眺めていると ロギング・ドライバの制限 という項目があり、

Docker Community Engine を使う場合は、 docker logs コマンドは以下のドライバのみ利用可能です。
- local
- json-file
- journald

と記載されており、実際これまでは上記以外のロギングドライバを指定した状態で docker logs をすると

$ docker logs
Error response from daemon: configured logging driver does not support reading

みたいな表示がされていました。

例えば私はGCPにログを流していたので、GCPのログドライバでも調べたのですが、やはり

This log driver does not implement a reader so it is incompatible with docker logs.

と記載されていました。(将来的にアップデートされると思います)

ところがDockerをアップデートして触っていると、
指定したロギングドライバの出力をした状態でも docker logs でログが出ることに気づきました。

最初はバグかと思っていろいろ試していたのですが、
結局のところDockerのリリースノートにたどり着き、

Support reading docker logs with all logging drivers (best effort)

つまり「すべてのロギングドライバと一緒にdocker logsが読めるよ!」というアップデートがあったことに気づきました。

やはり docker logsはデバッグには便利なので、非常にありがたいアップデートだと思います。

最後に

Docker 20.10がリリースされたのが2020年12月なので、
既に5か月経過しており「知ってるわ!」という方も多いと思いますが、
まだアップデートしてない方などの参考になれば幸いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0