1. ホーム
  2. docker

[解決済み] Docker-Composeで1つのコンテナに対するロギングを無効にする

2022-10-28 07:07:23

質問

Docker compose を使って起動したウェブアプリケーションがあるのですが、すべてのログを無効にしたいです(または、少なくともファイルではなく syslog に出力したいです)。

私の Web アプリケーションが動作するとき、起動時に 11GB のログ ファイルをすばやく生成することができるので、ディスク スペースが非常に速く消費されます。

通常のDockerでは ロギングオプション があるのは知っていますが、Docker Composeでは、実行コマンドに

docker-compose up

をアプリケーションフォルダに追加して、アプリケーションを起動することができます。私の場合、どのようにこの機能を有効にすればよいのでしょうか?ネット上のどこにも具体的な事例がありません。

どのように解決するのですか。

あなたは ロギング という機能があります。試しにドライバを none

logging:
    driver: none

完全な例です。

services:
  website:
    image: nginx
    logging:
      driver: none

最近のバージョンのdocker-composeでは、すべてのサービスがロギングを無効にしている場合、docker-composeはデタッチモードで動作します。強制的にアタッチモードにするには、そのようなシンプルなサイレントサービスを追加すればよいでしょう。

services:
  website:
    image: nginx
    logging:
      driver: none

  force-attach:
    image: bash
    command: tail -f /dev/null