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の浅いエントリと深いエグジットの原則についての簡単な説明

推薦する

MySQLデータベースを定期的に自動バックアップする方法

データは貴重なものであることは誰もが知っています。データをバックアップしなければ、データをそのまま放...

JS変数ストレージのディープコピーとシャローコピーの詳しい説明

目次可変タイプとストレージスペーススタックメモリとヒープメモリ基本的なデータ型参照タイプグラフィック...

Ubuntu システムにおけるネットワーク構成ファイルの分析と説明

今日は奇妙なネットワーク問題に遭遇しました。調査プロセスといくつかの構成状況を記録し、Linux で...

Spring Boot 階層化パッケージング Docker イメージの実践と分析 (推奨)

目次1. Springbootプロジェクトを準備する2. 関連する設定を実行する3.パッケージ4.D...

docker compose helloworld を使い始めるための詳細なプロセス

前提条件Compose は、Docker コンテナをオーケストレーションするためのツールです。Doc...

JavaScript で配列遅延評価ライブラリを実装する方法

目次概要達成方法具体的な実装評価関数の終了を決定する生成関数の範囲変換関数マップフィルター割り込み機...

概要ページでのフロートとクリアフロート

1. フロート: 主な目的は、テキストを画像の周囲に折り返す効果を実現することです。また、複数列レイ...

Vue で手ぶれ補正を実装するためのサンプルコード

手ぶれ防止: 繰り返しのクリックによるイベントのトリガーを防止まず、揺れとは何でしょうか? 震えるの...

NestJsはMongooseを使用してMongoDBを操作する

最近、NestJs フレームワークを学び始めました。学習コストは他のフレームワークよりもはるかに高く...

Vueはミックスインを使用してコンポーネントを最適化します

目次ミックスインの実装フック関数のマージプロジェクト実践伸ばす要約するVue は mixins AP...

クロスブラウザローカルストレージⅠ

原文: http://www.planabc.net/2008/08/05/userdata_beh...

Vue+SSMは画像アップロードのプレビュー効果を実現します

現在の要件は、ファイルのアップロード ボタンがあることです。ボタンをクリックすると、アップロードする...

Linux での Hbase のインストールと設定のチュートリアル

目次Linux での Hbase のインストールと設定1. Hbaseインストールパッケージをダウン...

nginx ベースのブラウザネゴシエーションキャッシュプロセスの詳細な説明

この記事は主に、nginx に基づいてブラウザネゴシエーションキャッシュを設定する詳細なプロセスを紹...