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

推薦する

Zabbix は MySQL インスタンス メソッドを監視します

1. 監視計画監視項目を作成する前に、何を監視するのか、どのように監視するのか、監視データをどのよう...

負の距離(共感) - 相互影響の反復プロセス

ネガティブな距離は共感を意味します。序文(疑問の提起):プロダクトマネージャーは機能を把握します。機...

MySQL 5.7.18 リリース インストール ガイド (bin ファイル バージョンを含む)

インストール プロセスは、コンパイル手順を除いて、基本的にソース バージョンと同じです。この記事では...

Windows で MySQL サービスを停止または削除できない問題の解決策

圧縮パッケージを解凍して Windows に MySQL をインストールしました。インストール方法は...

Vue実戦記録のログインページの実装

目次1. 事前準備1.1 Node.jsをインストールする1.2 webpackをインストールする1...

Docker で MySQL を起動したときに SQL 文を自動的に実行する方法

Docker で MySQL コンテナを作成する場合、コンテナの起動後にデータベースとテーブルが自動...

Vue Element-ui フォーム検証ルールの実装

目次1. はじめに2. ルール検証の入力モード2.1 サンプルコード2.2、フォーム項目2.3. 小...

Nginx のパフォーマンスを向上させるための提案

Web アプリケーションが 1 台のマシンでのみ実行される場合、パフォーマンスを向上させるのは非常に...

ホバー生成の境界線によって生じる要素の移動を解決する方法

序文hover疑似クラスが要素に境界線を追加すると、要素内のコンテンツがずれることがあります。box...

Linux での Python のアップグレードと pip のインストールの詳細な説明

Linuxバージョンのアップグレード: 1. まず、Linuxオペレーティングシステムに付属するPy...

新しい CSS :where および :is 疑似クラス関数とは何ですか?

:is と :where とは何ですか? :is()と:where()は、セレクターを作成するとき...

MySQL スロークエリログの有効化と設定

導入MySQL スロー クエリ ログは、問題のある SQL ステートメントのトラブルシューティングや...

MySQLのさまざまなロックに関する詳細な理解

目次ロックの概要ロックの分類データベース操作の粒度データ操作の種類MySQL ロックさまざまなストレ...

MySql バッチ挿入の最適化 SQL 実行効率の例の詳細な説明

MySql バッチ挿入の最適化 SQL 実行効率の例の詳細な説明itemcontractprice ...

ウェブページのグリッドデザインを考える

<br />元のアドレス: http://andymao.com/andy/post/8...