Dockerサーバーのストレージリソースプール不足問題の解決

Dockerサーバーのストレージリソースプール不足問題の解決

システム環境:

  • Dockerバージョン: 19.03.13
  • オペレーティングシステムのバージョン: CentOS 7.8

1. 問題の説明

最近、Docker run コマンドを実行してイメージを起動すると、Docker start image コマンドが正常に実行できず、次のエラー メッセージが表示されました。

エラー: デーモンからのエラー応答: devmapper: シン プールには 163051 個の空きデータ ブロックがありますが、これは最小必要数の 163840 個より少ないです。シン プールに空き領域を増やすか、dm.min_free_space オプションを使用して動作を変更してください。

2. 問題分析

エラー メッセージによると、問題は Docker Thin Pool のスペースが不足していることです。プールの空き領域を増やすか、dm.min_free_space オプションを使用してプールの空き領域のサイズを変更する必要があります。

次のコマンドを使用して、サーバー上の Docker 情報を表示し、リソースの使用状況を観察します。

$ docker情報

表示される内容は次のとおりです。

...
データ容量合計: 507.4GB
利用可能なデータ容量: 100.67GB
メタデータ使用領域: 100.4MB
メタデータスペース合計: 20.147GB
使用可能なメタデータ容量: 20.047GB
シンプールの最小空き容量: 100.74GB
遅延削除が有効: true
遅延削除が有効: true
延期削除されたデバイス数: 0
...

上記の情報から、シン プールの最小空き容量 = 100.74 GB、使用可能なデータ容量 = 100.67 であることがわかります。これは、使用可能なデータ容量がシン プールに必要な最小容量よりも少ないことを意味し、ミラーが正常に起動できなくなります。

3. 問題解決

1. Dockerのディスク使用量を確認する

次のコマンドを使用して、Docker ディスクの使用状況を表示できます。

$ docker システム df

タイプ 合計 アクティブサイズ 再利用可能
画像 500 12 38.31GB 34.5GB (90%)
コンテナ 64 21 157MB 4.109MB (2%)
ローカルボリューム 37 18 0B 0B
ビルドキャッシュ 0 0  

合計すると以下の情報が表示されます。

  • TYPE: リソースタイプ。
  • TOTAL: リソースの合計数。
  • ACTIVE: アクティブ状態のリソースの数。
  • SIZE: リソースによって使用されるスペースのサイズ。
  • RECLAIMABLE: 再利用可能なリソースのサイズ。

コンポーネントは次のとおりです。

  • 画像: 画像が占めるストレージ容量。
  • コンテナ: 起動したコンテナが占有するストレージ容量
  • ローカル ボリューム: ローカルにマウントされたボリュームによって使用されるストレージ スペース。
  • ビルド キャッシュ: ビルド キャッシュが占有するストレージ領域。

システムの使用状況を詳細に表示したい場合は、-v コマンドを使用して各リソースのストレージ使用状況の詳細を表示できます。

2. 再利用可能なストレージリソースのクリーンアップコマンドを実行する

Docker はストレージ リソースのリサイクル機能を提供します。コマンドは次のとおりです。

クリーンアップコマンドの詳細については、公式のDockerドキュメントを参照してください: docker system prune

$ docker システムプルーン

このコマンドは、未使用のコンテナ、ネットワーク、イメージ (ぶら下がっているものや参照されていないもの)、ボリューム (オプション) をすべてクリーンアップします。このコマンドを実行した後、しばらく待つと、十分なリソースが回復され、Docker イメージは通常の状態に戻ります。

要約する

これで、Docker サーバー上のストレージ リソース プールが不足する問題を解決する方法についての記事は終了です。Docker サーバー上のストレージ リソース プールが不足する問題を解決する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 既存のイメージを変更する Docker の詳細な説明 (コミット)
  • Dockerイメージ内のファイルを表示する方法
  • Docker Docker の保存場所を変更する コンテナイメージのサイズ制限を変更する操作

<<:  MySQL カーディナリティ統計の簡単な分析

>>:  HTMLフォーム要素の詳しい解説(パート1)

推薦する

MySQLインデックスが失敗するいくつかの状況の分析

1. 最左プレフィックス原則 - 複数の列にインデックスが付けられている場合は、最左プレフィックス原...

MySQL における IF()、IFNULL()、NULLIF()、および ISNULL() 関数の使用に関する詳細な説明

MySQL では、IF()、IFNULL()、NULLIF()、および ISNULL() 関数を使用...

JS 実用的なオブジェクト指向スネークゲームの例

目次考える1. 貪欲な蛇の効果画像2. スネークの分析2.1 ゲーム開始機能2.2 運動機能2.2....

Uniapp WeChatアプレット: キー障害の解決策

ユニアプリコード <テンプレート> <表示> <image v-for...

ARMアーキテクチャにおける関数呼び出しプロセスの簡単な分析

目次1. 背景知識1. ARM64レジスタの紹介2. STP命令の詳しい説明(ARMV8マニュアル)...

Node.js コンソールで強調表示されたコードを印刷する方法

序文コードを実行してエラーが発生すると、エラーが出力されます。エラーにはスタック情報が含まれており、...

大規模なMySQLデータベース用のマスタースレーブシステムを構築するアイデアを共有する

今週は戦争のように忙しかったです。他人に操られているような気がします。毎日朝早く出勤して夜遅く帰り、...

Webpack ファイル パッケージ化エラー例外

webpack をパッケージ化する前に、次の作業が完了していることを確認する必要があります。 1) ...

HTML シンプルショッピング数量アプレット

この記事では、参考までにシンプルなHTMLショッピング数量アプレットを紹介します。具体的な内容は次の...

MySQL 自動インクリメント ID 枯渇の例

ディスプレイ定義IDテーブルに定義された自動増分IDが上限に達した場合、次のIDを申請する際に得られ...

MySQL データベースで機密データの暗号化と復号化を実装する方法

目次1. 準備2. MySQL暗号化関数方式2.1 MySQL 暗号化2.2 MYSQL 復号化3....

中国語ウェブコンテンツを紹介する10の経験

<br /> テキスト、シンボル、リンクの 3 つの側面に焦点を当て、主に中国語で、私の...

ウェブフロントエンド開発の細部

1 選択タグは閉じられている必要があります <select></select>...

レスポンシブ Web デザインが価値のない 5 つの理由

この記事は Tom Ewer の Managewp ブログからのもので、現在人気のレスポンシブ デザ...

MySql マスタースレーブレプリケーションの実装原理と構成

データベースの読み取りと書き込みの分離は、トラフィック量の多い大規模システムやインターネット アプリ...