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

推薦する

Centos に MYSQL8.X をインストールするチュートリアル

MySQLのインストール(4、5、6は省略可能)ステートメント: CentOS のバージョンは 7....

nginx がどのようにして高いパフォーマンスとスケーラビリティを実現するのかを深く理解する

NGINX の全体的なアーキテクチャは、連携して動作する一連のプロセスによって特徴付けられます。メイ...

Nginx が Apache より優れている理由

Nginx は、わずか数年で Web サーバー市場の大部分を占めるようになりました。周知のとおり、N...

CentOS 8 仮想マシンから Windows 10 ホスト フォルダーにアクセスする方法の簡単な分析

VMware Toolsをインストールすると、仮想マシンホスト間で①テキストをコピーして貼り付けるこ...

ウェブサイトのユーザビリティとコンバージョン率を向上させる 25 のツール

ウェブサイトの場合、ユーザビリティとは、ユーザーが必要な情報を効果的に見つけたり、タスクを完了したり...

フロントエンドのパフォーマンス最適化 - フロントエンドエンジニアが話し合うべき問題点

はじめに<br />前回の記事「私の CSS アーキテクチャ コンセプト」では、公園で友...

オブジェクト内のフィールドを削除する js メソッド

この記事では主に、オブジェクト内のフィールドを削除するための js の実装を紹介し、次のように共有し...

Vueは水平の斜めの棒グラフを実装します

この記事では、水平傾斜棒グラフを実装するためのVueの具体的なコードを参考までに共有します。具体的な...

CSS 要素の非表示の原則と display:none および visibility:hidden

1. CSS 要素の非表示<br />CSS では、要素を非表示にする (つまり、画面の...

ページ切り替え効果を作成するための純粋な CSS3 のサンプルコード

前に書いたものは複雑すぎるので、シンプルなコアにしましょう <html> <ヘッド...

Vueはechart円グラフの凡例のパーセンテージを表示するメソッドを実装します

この記事では主に、echart を使用してパーセンテージを表示する Vue の円グラフデータ部分を紹...

Linux の一般的なコマンド chmod を使用して、ファイルの権限 777 と 754 を変更します。

よく使用されるコマンドは次のとおりです。 chmod 777 文件或目錄例: chmod 777 /...

CSV、Excel、SQL ファイルを MySQL にインポートするためのヒント

1. csvファイルをインポートする次のコマンドを使用します。 1.mysql> infile...

Ubuntu 18.04 LTSでIPアドレスを設定するための完全な手順

序文Ubuntu 18.04 LTS で IP アドレスを設定する方法は、これまで使用されていた設定...

Win10システムにMySQL 8.0をインストールするときに発生する問題を解決する

Win10 システムに MySQL 8.0 をインストールする際に発生する問題と解決策は次のとおりで...