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)

推薦する

DockerでPrometheusをインストールする詳細なチュートリアル

目次1. Node Exporterをインストールする2. cAdvisorをインストールする3. ...

HTML の著作権記号のフォント選択問題 (著作権記号をより美しくする方法)

1. 問題を発見する&copy; は HTML の著作権記号ですが、間違ったフォントを選択す...

Ubuntu 18.04 (物理マシン) で OpenWRT 開発環境を構成する方法

1. 仮想マシン(物理マシン)をインストールする仮想マシンまたは物理マシンにインストールできます。 ...

入力タイプとは何を意味し、入力を制限する方法

入力を制限する一般的な方法1. ボタンが押されたときに点線のボックスを消すには、入力に属性値hide...

MySQL データ分析ストレージエンジンの例の説明

目次1. 事例紹介2. システムのデフォルトのストレージエンジンとデフォルトの文字セットを表示する3...

複数クリックを防ぐVueの実践

通常、クリック イベントは、メッセージ リマインダーのさまざまな状況に分割されます。これらが処理され...

Vueでキャッシュされたページを管理する方法

目次問題1: 破壊1. 破壊する方法2. いつ破壊するか2.1 解決策1: route.queryを...

vue-cli 3 で vue-bootstrap-datetimepicker 日付プラグインを使用する方法

需要背景最近、Vue を使用してフロントエンド エンジニアリング システムと組み合わせ、以前のデモを...

LinuxスレッドのPID(TID、LWP)を取得するいくつかの方法の詳細な説明

Linux C/C++ では、スレッド レベルの操作は通常、pthread ライブラリを通じて実行さ...

ネイティブ JavaScript 継承方法とその長所と短所の詳細な説明

目次序文プロトタイプ継承アドバンテージ欠点コンストラクタの継承アドバンテージ欠点組み合わせ継承寄生的...

MySQL ページングパフォーマンスの調査

一般的なページング方法: 1. エスカレーター方式エスカレーター方式では通常、前のページ/次のページ...

MySQL 5.6 のインストール手順(画像とテキスト付き)

MySQL はオープンソースの小規模リレーショナル データベース管理システムです。現在、MySQL...

Nginx 仮想ホストの詳細な分析

目次1. 仮想ホスト1.1 仮想ホストの概念1.2 仮想ホストタイプ2. IP仮想ホストに基づく2....

CSS3はテキストのレリーフ効果、彫刻効果、炎のテキストを実現します

この効果を実現するには、まず CSS のプロパティを知っておく必要があります。 text-shado...