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 でよく使用される複数テーブルの変更ステートメントの概要

推薦する

Nest.js パラメータ検証とカスタム戻りデータ形式の詳細な説明

0x0 パラメータ検証Nest.jsでは、パラメータ検証業務のほとんどをパイプライン方式で実装してい...

Web フロントエンドのパフォーマンス最適化の詳細説明: リソースのマージと圧縮

2つの目的のためのリソースの結合と圧縮httpリクエストの数を減らす要求されたリソースのサイズを縮小...

FTP環境設定ソリューション(vsftpd)の詳細な説明

1. vsftpdコンポーネントをインストールするインストールコマンド: [root@ink4t ~...

vue-pdf はオンラインファイルプレビューを実現します

この記事では、参考までに、ファイルのオンラインプレビューを実現するためのvue-pdfの具体的なコー...

モバイル端末の水平および垂直画面ビューポート検出を決定するための js のいくつかの方法

目次1. 異なるビューポートを取得する方法2. 水平画面と垂直画面のJavaScript検出3. 水...

MySQL データベースのバックアップとリカバリの実装コード

データベースのバックアップ #文法: # mysqldump -h server-u usernam...

VueとVueComponentの関係の詳細な説明

次のケースでは、これまでに学んだプロトタイプチェーンの知識ポイントを確認します。 // コンストラク...

フォーム内のどの隠し属性をフォームとともに送信できるか

フォーム内の visibility=hidden および display=none のフォーム要素は...

ウェブページで CSS スタイルを適用するさまざまな形式の概要

1. インライン スタイル (<body></body> 内に配置されます)...

Vueアイコンセレクターのサンプルコード

出典: http://www.ruoyi.vip/ 'vue' から Vue をイン...

CentOS 7.3 で Nginx 仮想ホストを設定する方法

実験環境最小限にインストールされた CentOS 7.3 仮想マシン基本環境を構成する1. ngin...

JavaScript JSON.stringify() の使用法の概要

目次1. 使用方法1. 基本的な使い方2. 2番目のパラメータ - フィルター3. 3番目のパラメー...

Linuxでのaliasコマンドの使い方の詳細な説明

1. 別名の使用alias コマンドは、コマンドのエイリアスを設定するために使用されます。このコマン...

MySQLクエリ最適化に必須の知識ポイントのまとめ

序文クエリの最適化は一夜にして達成できるものではありません。対応するツールの使い方を学び、他の人の経...