Docker クリーニングキラー/Docker オーバーレイ ファイルがディスク領域を大量に占有する

Docker クリーニングキラー/Docker オーバーレイ ファイルがディスク領域を大量に占有する

[インターネット上の移行ファイルをすべて見ると、信頼性が低く、症状のみを治療し、根本的な原因を治療していないと感じます (これは新世代のコーダーのあるべき姿ではありません)]

du -sh* で確認したところ、オーバーレイフォルダが爆発していたことがわかりました。

docker system prune -a は 7g のスペースしかクリアせず、フォルダはまだ 30g のままです

ディスク使用量が 100% から約 80% に低下しましたが、これは許容範囲ではありません。さらに 2 日間実行してもまだいっぱいです。

ついにキラーが登場、portainerをインストール

Dockerのインストールチュートリアル

ここではdokcer-composeを使用してデプロイしているので、構成は次のとおりです。

 ポーター:
  画像: portainer/portainer
  再起動: 常に
  ポート:
  - 「9000:9000」
  ボリューム:
  - /var/run/docker.sock:/var/run/docker.sock
  - /data/docker/portainer/data:/data

up -d の後、nginx はポートを取得してアクセスします。

使用していないものはすべて削除します。

ディスク使用量を再度確認したら、ようやく安心して漕げるようになりました〜〜〜

追伸:実は、私たちの部署では以前にもこの方法を使ったことがあるのですが… 。 。 。 。えっと、忘れてた。えっと、えっと、えっと。 。 。 。教訓として書き留めておきます〜

追加知識: Centos7 は Docker 用のオーバーレイ ストレージ ドライバーを構成します

前提:

RHEL または CentOS は新しい Docker ストレージ ドライバー (overlay または overlay2) を使用するため、システム カーネル バージョンを 3.10.0-514 以降にアップグレードする必要があります。コーミングの手順は次のとおりです。

カーネルを確認する

バージョン 3.10.0-514 以降

uname -r

3.10.0-514.++++.x86_64

システムアップグレード

sudo yum アップグレード --assumeeyes --tolerant

sudo yum update --assumeeyes を実行します。

カーネルがオーバーレイモジュールをロードしたかどうかを確認する

lsmod | grep オーバーレイ

戻り値が空の場合は、モジュールの読み込みを設定する必要があります

オーバーレイを有効にする

sudo tee /etc/modules-load.d/overlay.conf <<-'EOF'
かぶせる
終了

システムを再起動する

reboot

オーバーレイが有効になっていることを確認する

lsmod | grep オーバーレイ

かぶせる

Dockerストレージパーティションの準備

別のディスクまたはパーティションを準備し、パラメータ -n ftype=1 を追加して xfs としてフォーマットし、そこに /var/lib/docker をマウントすることを強くお勧めします。

理由

XFSファイルシステムをフォーマットするときは、-n ftype=1を追加する必要があります。

パラメータ: -n は実際にファイルシステムを作成せず、作成された情報のみを表示します。

ftype = value を使用すると、inode タイプをディレクトリ構造に格納できるため、readdir と getdents は inode を検索しなくても inode タイプを知ることができます。デフォルトは 0 で、ディレクトリ構造には存在しません。

ローカルディスクをフォーマットする

ローカル ディスクが正しくフォーマットされていることを確認してください。

mkfs.xfs -f -n ftype=1 /dev/sdg5

ディスク情報を確認する

lsblk -a -f 
名前 FSTYPE ラベル UUID マウントポイント
 
├─SDG4             
├─sdg5 xfs 71165973-9e3f-4d8e-9a4e-2c00c0e70efa

ディスクブートマウントを構成する

/etc/fstab の詳細

UUID=71165973-9e3f-4d8e-9a4e-2c00c0e70efa /v​​ar/lib/docker xfs デフォルト 0 0

ディスクを手動でマウントする

マウント -a

ディスクマウント情報を表示する

ブロック

├─sdg5 8:101 0 200G 0 部分 /var/lib/docker

dockerの起動ファイルを変更し、オーバーレイストレージを使用するように設定する

/etc/sysconfig/docker の詳細

# /etc/sysconfig/docker
 
# dockerデーモンの実行方法を変更したい場合は、これらのオプションを変更します
オプション = '--storage-driver=overlay --selinux-enabled --log-driver=journald --signature-verification=false' 
[ -z "${DOCKER_CERT_PATH}" ] の場合;
 DOCKER_CERT_PATH = /etc/docker
フィ

または

デーモン
{
 "ストレージドライバー": "overlay2",
 「ストレージオプション」: [
 "overlay2.override_kernel_check=true"
 ]
}

スタートアップを追加

systemctlデーモンリロード
systemctl ドッカーを起動する
systemctl ドッカーを有効にする

Dockerストレージ関連情報を確認する

$ docker情報
 
コンテナ: 0
画像: 0
ストレージ ドライバー: overlay2
 バックアップファイルシステム: xfs
 d_type をサポート: true <<=== ネイティブオーバーレイの相違点に焦点を当てる: true
<出力は省略>

d_typ をサポートしていないオーバーレイ/オーバーレイ ドライバーで Docker を使用する場合、特定のディレクトリまたはファイルの削除の失敗、ファイルまたはディレクトリの権限やユーザーの設定の失敗など、Docker がファイルを操作するときにエラーが発生する可能性があります。これらは予期しないエラーです。

たとえば、Docker のビルド中に、ビルド プロセス中にファイルの削除などの操作が失敗し、ビルドが停止することがあります。

上の docker クリーニングキラー/docker オーバーレイファイルがディスクを占有しすぎる問題の解決策に関する記事は、編集者が皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM をサポートしていただければ幸いです。

以下もご興味があるかもしれません:
  • Docker Overlay2 のディスク容量使用量が大きすぎてメソッドをクリーンアップできない

<<:  Expressはログイン認証を実装

>>:  Mysql と Oracle でよく使用される複数テーブルの変更ステートメントの概要

推薦する

TSで最も一般的な宣言マージ(インターフェースマージ)

目次1. マージインターフェース1.1 非関数メンバー1.2 関数メンバー序文:今日お話ししたいのは...

シンプルなデータ応答システムを実装する

目次1. デップ2. 観察者を理解する3. 監視と観察者を理解する4. トリガーの依存性5. プロセ...

MySQLの場合の使用例分析

まず、データベース テーブルを作成します。 テーブル `t_demo` を作成します ( `id` ...

MySQL でスロークエリログを有効にする方法

1.1 はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメ...

MySQL 文字セットの文字化けとその解決方法

序文文字セットは、一連のシンボルとエンコード規則です。Oracle データベースでも MySQL デ...

Dockerコンテナ同士を接続する3つの方法の詳しい説明

Docker コンテナ間の相互接続と通信には 3 つの方法があります。 Docker 内部ネットワー...

MySQL 自動インクリメント ID のオーバーサイズ問題のトラブルシューティングと解決策

導入Xiao A がコードを書いていたところ、DBA Xiao B が突然、「急いでユーザー固有情報...

Vue3 がデータ監視を実装するためにプロキシを使用する理由の分析

Vue データの双方向バインディング原則ですが、この方法には欠点があり、配列とオブジェクトの部分的な...

nginx で Vue プロジェクトをデプロイする方法

今日は nginx サーバーを使用するのですが、vue プロジェクトをサーバーにデプロイする必要もあ...

2列のデータをSQLの新しい列として操作する

以下のように表示されます。 bb_sbからa1、a2、a1+a2 a、a1*a2 b、a1*1.0/...

CSS (カスケーディング スタイル シート) の一般的な用語の概要

CSS を使用する場合は、DOCTYPE (ドキュメント タイプ定義) を記述することを忘れないでく...

vue-cropper コンポーネントは画像の切り取りとアップロードを実現します

この記事では、画像の切り取りとアップロードを実装するためのvue-cropperコンポーネントの具体...

Dockerfile における VOLUME と docker -v の違い

Dockerfile でのボリュームのマウントと docker -v コマンドによるマウントには明ら...

JavaScriptはスライダーを介してWebページの色を変更することを実装します

みなさんこんにちは、今日はウェブフロントエンドのHTMLを見ていたら、inputタグのtype属性が...

CentOS に Memcached と PHP Memcached 拡張機能をインストールする

高性能分散メモリオブジェクトキャッシュシステムMemcachedについては、別の記事「Windows...