ホームページ  >  記事  >  運用・保守  >  Docker ログのサイズ制限と保存ディレクトリの切り替え

Docker ログのサイズ制限と保存ディレクトリの切り替え

WBOY
WBOY転載
2023-06-09 19:18:421319ブラウズ

Docker ログのサイズ制限と保存ディレクトリの切り替え

製品のさまざまな環境では、CentOS 仮想マシンが多数使用されており、ルート ディレクトリの容量はデフォルトで 50G ですが、使用時間が長くなると容量が不足してきます。 . .

使用されている方法は、サーバーが常に利用できるように、不要なイメージと Docker ログをクリアすることです。掃除が役に立たなくなって初めて、他の方法を見つけようと考えました。

私たちは、絶望的な状況に追い込まれていないときは、慣れ親しんだ方法やツールに習慣的に依存します。効率的ではないかもしれませんが、問題を解決することはできます。この種の考え方は使えないわけではありません。人々は自分の快適ゾーンに留まり、外に出たがりません。

上記の他の方法は、Docker のログ サイズを制限したり、Docker データ ディレクトリを外部ストレージに切り替えるなど、実際には非常に簡単で、情報を確認することで入手できます。

ログの制限

1. Docker 構成ファイル /etc/docker/daemon.json を編集します。ファイルが存在しない場合は、新しいファイルを作成します:

sudo vi /etc/docker/daemon.json

2次の内容をファイルに追加して、1 つのログ ファイルのサイズを 100 MB に制限し、最新の 5 つのログ ファイルを保持します。ここでは、max-size パラメータと max-file パラメータを使用して、ログのサイズと数を制御します:

{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "5"
}
}
  • max-size: 単一のログ ファイルの最大サイズ;
  • max-file: ログファイルは最大複数個保持され、1ファイルのログサイズが設定を超えた場合、新しいログファイルが生成されます。

3. Docker サービスを再起動して、設定を有効にします:

sudo systemctl restart docker

データ ディレクトリの切り替え

CentOS では、Docker のデフォルト ディレクトリは /var/ です。 lib/docker では、Docker 構成ファイルの data-root オプションを使用して、Dcoker データ ディレクトリを設定できます。具体的な手順は次のとおりです:

1. /etc/ ファイルに data-root オプションを追加します。 docker/daemon.json 設定ファイル:

{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "5"
}
"data-root": "/home/docker"
}
  • /home/docker ディレクトリは外部ストレージまたは比較的大きな容量を持つボリュームです。

2. Docker を無効にします。

sudo systemctl stop docker

3. Docker のデフォルト ディレクトリの内容を新しいディレクトリにコピーします:

sudo rsync -aqxP /var/lib/docker/ /home/docker/
  • ファイルとディレクトリのリモート同期用ツール;
  • rsync に指示しますファイルとディレクトリをアーカイブ モードで同期します。ここで、 a はアーカイブ モードを表し、 q はクワイエット モード (出力は表示されません) を表し、 x はファイル システムの境界を越えないことを表します。

4. デフォルト ディレクトリの名前を bak に変更します:

mv /var/lib/docker /var/lib/docker.bak

これの利点は、元のデータをバックアップし、動作が安定したら削除できることです。さらに、設定が有効にならない場合でも、元のディレクトリが読み取られることになります。

5. Dcoker を有効にする:

sudo systemctl start docker

上記の 3 番目の手順では、rsync コマンドを使用してコンテンツを同期しました。このコマンドの意味は、rsync ツールを使用して /var/ をコピーすることです。 lib/docker/ ディレクトリ内のすべてのファイルとサブディレクトリは、別のローカル コンピュータの /home/docker/ に同期されます

以前は、ファイルまたはディレクトリの操作には主に cp と scp が使用されていました。 、チェック 情報を読んで rsync コマンド ツールについて学び、その後 cp と scp について学び続けました。

rsync と cp および rsync の違い

  • Copy メソッド: cp と scp はファイル全体をターゲットの場所にコピーしますが、rsync は必要な部分のみをコピーします。これにより、レプリケーションの速度と効率が向上します。
  • サポート性: rsync は、ファイル同期、ファイル バックアップ、ファイル回復など、より多くの操作をサポートします。 cp と scp はファイルのコピーのみをサポートします。
  • 送信方法: cp はローカル ファイル システム間でファイルをコピーし、scp はリモート操作を実行し、rsync はローカル マシンまたはリモート マシン間でファイルを同期できます。
  • 効率: rsync は更新が必要なファイルのみをコピーするため、より効率的です。
  • オプション: rsync は、圧縮、部分転送、ファイル システム間の同期など、より多くのオプションと構成オプションを提供します。

つまり、rsync はより強力で効率的なファイル コピーおよび同期ツールです。ローカルまたはリモート マシン間でファイルの同期、バックアップ、およびリカバリ操作を実行する必要がある場合は、rsync を使用することをお勧めします。また、cp と scp は、単純なローカル ファイルのコピーやリモート ファイル転送に適しています。

概要

ログ制限とディレクトリ切り替えについてのこの研究を通して、私は 2 つの考えを持ちました:

1. 多くの場合、より良い方法はすぐに見つかります。それは、「使えないわけではない」という考え方を持たずに、一歩踏み出して探究する気持ちがあるかどうかです。学習スキル。

2. 仕事後に身につくスキルの多くは、問題解決を続けることで身につくもので、徐々に経験は積んでいきますが、体系的ではありません。体系的に勉強すれば、多くの盲点が確実に解消されます。

以上がDocker ログのサイズ制限と保存ディレクトリの切り替えの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。