Dockerデータを完全にクリーンアップする方法

Dockerデータを完全にクリーンアップする方法

Docker はシステムの設定を変更しませんが、大量のディスク領域を占有します。しばらくすると (Docker を使用して)、次のコマンドを入力すると、恐ろしい使用状況統計が返されるはずです。

docker システム df

幸いなことに、Docker を使用すると、未使用のイメージ、コンテナー、ボリュームからディスク領域を再利用することができます。

定期的に剪定する

停止したコンテナ、未使用のネットワーク、および未処理のイメージを安全に削除するには、次のコマンドを定期的に実行することをお勧めします。

docker システム プルーン

よりリスクの高いオプションは次のとおりです。

docker システム プルーン -a

これにより、実行中のコンテナに関連付けられていないイメージも消去されます。これは少し極端かもしれませんが、Docker は必要なイメージを再度ダウンロードします。最初のダウンロードは少し遅くなりますが、画像は将来の使用のためにキャッシュされます。

次のセクションでは、特定のアイテムを削除する他の方法について説明します。

ミラーエビクション

Docker イメージは、アプリケーション (Web サービス、言語ランタイム、データ管理システムなど) のディスク スナップショットです。次のように入力すると、実行中のイメージとダングリング イメージ (コンテナーに関連付けられていないイメージ) の両方を含むすべてのイメージを表示できます。

dockerイメージls -a

次のように入力すると、Docker イメージを削除できます。

docker イメージ rm <名前またはID>

このコマンドには任意の数の画像を追加できます。各画像はスペース文字で区切ってください。

コンテナのクリーンアップ

Docker コンテナはイメージの実行インスタンスであり、同じコンテナから任意の数のコンテナを起動できます。コンテナはステートレスであり、イメージのファイルシステムを参照するため、通常は小さくなります。次のように入力して、実行中および停止中のすべてのコンテナを表示します。

dockerコンテナls -a

コンテナを停止したら、削除できます。コンテナを停止するコマンドは次のとおりです。

docker コンテナ停止 <名前またはID>

コンテナを削除するコマンドは次のとおりです。

docker コンテナ rm <名前またはID>

繰り返しになりますが、このコマンドには、スペースで区切られた任意の数のコンテナ名または ID を追加できます。

停止したコンテナを保管しておく必要はほとんどありません。 docker run コマンドに --rm オプションを追加すると、コンテナの終了後に自動的に削除できます。

ネットワークソート

コンテナは Docker によって管理されるネットワークに接続して相互に通信できるようになります。これらは、ディスク領域をあまり占有しない構成ファイルです。次のように入力して、すべての Docker ネットワークを表示します。

docker ネットワーク ls

未使用のネットワークを 1 つ以上削除するには、次のコマンドを入力します。

docker network rm <名前またはID>

繰り返しになりますが、このコマンドには、スペースで区切って任意の数のネットワーク名または ID を追加できます。

体積の蒸発

Docker ボリュームは仮想ディスク イメージです。 再起動間でファイルやその他の状態情報を保存できるように、実行中のコンテナに接続する必要があります。 ボリュームのサイズはそれを使用するアプリケーションによって異なりますが、一般的なデータベースでは、ほとんどの場合空であっても数百メガバイトのスペースが必要になります。

次のコマンドを使用して、Docker によって管理されているすべてのディスク ボリュームを表示できます。

docker ボリューム ls

Docker ボリュームを削除すると、そのデータは永久に消去されます。もう後戻りはできません!

データベース駆動型アプリケーションを開発している場合、多くの場合、特定のレコード セットを再作成するために使用できる 1 つ以上のデータ ダンプを保持できます。ほとんどのデータベース クライアント ツールには、Adminer のエクスポート リンクなどのダンプ機能が用意されています。

ほとんどのデータベース システムでは、MySQL の mysqldump ユーティリティなどのバックアップ機能が提供されます。 docker exec コマンドを使用して、実行中のコンテナに対してこれらの操作を実行できます。

次の Linux / macOS コマンドは、mysql という名前のコンテナ上で実行されている mydb という名前の MySQL データベースを backup.sql という名前のファイルにバックアップします。 パスワード mysecret を持つ MySQL ルート ユーザーを使用する:

docker exec mysql /usr/bin/mysqldump -u root -pmysecret mydb \ > backup.sql

Windows PowerShell と同等のもの:

docker exec mysql /usr/bin/mysqldump -u root -pmysecret -r mydb | \ Set-Content backup.sql

docker cp コマンドを使用して、実行中のコンテナにデータ ファイルをコピーしたり、実行中のコンテナからデータ ファイルをコピーしたりすることもできます。 これはソース パスとターゲット パスを介して渡され、コンテナーは名前/ID の後にコロンとそのパスが続く形式で識別されます。例:

docker cp mycontainer:/some/file ./host/directory

データが安全であると仮定すると、次のように入力して未使用のボリュームを削除できます。

docker ボリューム rm <名前>

未使用の Docker ボリューム (現在実行中のコンテナに接続されていないボリューム) はすべて、次のコマンドを使用して削除できます。

docker ボリュームのプルーニング

あるいは、docker volume prune -a を実行するとすべてのボリュームが削除されます。 結局のところ、すでにバックアップはありますよね?

完全にクリーンなスタート

未使用のコンテナ、イメージ、ボリューム、ネットワークをすべて 1 つのコマンドでクリーンアップできます。

docker システム プルーン -a --volumes

確認プロンプトなしでクリーンアップを強制する場合は、-f を追加できます。 システムは Docker データなしで元の状態に復元されます。

Docker データを完全にクリーンアップする方法についての記事はこれで終わりです。Docker データのクリーンアップに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker ディスク領域クリーニングのソリューション
  • Docker クリーニングの一般的な方法と問題点
  • Docker クリーンアップ環境操作
  • Docker が占有するディスク領域をクリーンアップする方法
  • Docker プライベート サーバー イメージを定期的にクリーンアップする方法
  • Docker によって生成されたジャンクファイルをクリーンアップする方法
  • Dockerリソースを素早くクリーンアップする方法
  • Docker クリーンアップ コマンド コレクション

<<:  Vueフィルターの詳細な説明

>>:  MySQLの浅いエントリと深いエグジットの原則についての簡単な説明

推薦する

CSS 使用のヒントのまとめ

最近、ブログのアップグレードを始めました。テンプレートを変更する過程で、CSS スタイルシートを書き...

詳細なアイデアを備えたシンプルな計算機の HTML 実装

コードをコピーコードは次のとおりです。 <!DOCTYPE html> <html...

レイアウトサイズを変更するために左右にドラッグする純粋なCSS

ブラウザの非overflow:auto要素resize伸縮機能を利用して、JavaScript を使...

マークアップ言語 - 印刷スタイルシート

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

vue-router を遅延ロードする 3 つの方法のまとめ

遅延読み込みを使用しない 'vue' から Vue をインポートします。 '...

MySQL でのデータベース間クエリの例

序文MySQL では、クロスデータベース クエリは主に 2 つの状況に分けられます。1 つは同じサー...

JSはフロントエンドのページング効果を実現します

この記事の例では、フロントエンドのページング効果を実現するためのJSの具体的なコードを参考までに共有...

MySQL デュアルマシン ホットスタンバイ実装ソリューション [テスト可能]

目次1. コンセプト2. 環境の説明3. マスタースレーブホットスタンバイ実装1. コンセプト1. ...

マスタークラスタに再参加する k8s ノードの実装

1. ノードを削除するkubectl delete node node01を実行します。 2. この...

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

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

VUE v-for の :key の詳細な説明

v-for タグにキーが追加されていない場合。 <!DOCTYPE html> <...

Ubuntu 16.04 64ビット版を3つのステップで32ビットプログラムと互換性を持たせる

ステップ1: システムのアーキテクチャを確認する dpkg --print-architecture...

jQuery タグセレクターの適用例の詳細な説明

この記事では、jQueryタグセレクターアプリケーションの具体的なコードを例として紹介します。具体的...

mysql explain(分析インデックス)の使い方の詳しい説明

EXPLAIN は、MySQL がインデックスを使用して選択ステートメントを処理し、テーブルを結合す...

CSSの記述形式、モバイルページの基本構造の詳細な説明

1. CSSの記述形式1. インラインスタイルCSSコードを開始タグに直接記述することができます&l...