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

推薦する

Vueの子コンポーネントが親コンポーネントのメソッドを呼び出す場合の詳細な説明

1. 子コンポーネントのthis.$parent.eventを通じて親コンポーネントメソッドを直接呼...

MySQL DDLステートメントの使用

序文SQL の言語分類には主に以下の種類があります。 DDLデータ定義言語作成、削除、変更データ定義...

Nginx で https をアップグレードする方法

購入証明書Alibaba CloudのCloud Shield証明書サービスから購入できます。証明書...

Jenkins を使用した Vue プロジェクトのワンクリック パッケージングと公開の実装

目次Jenkinsのインストールインストールポート番号を変更します(デフォルトのポートは8080です...

TypeScript における型保護の詳細な説明

目次概要型アサーション構文ではインスタンスオブ構文typeof構文要約する概要TypeScript ...

プロジェクトのフロントエンドとバックエンドでの Echart チャートの使用に関する詳細な説明

目次序文1. プロジェクトアーキテクチャ2. Echart公式サイトにアクセスして自己分析を学ぶ2....

HTML 要素の高さ、offsetHeight、clientHeight、scrollTop などの詳細な説明。

要素に関するいくつかの属性フロントエンドの日常的な開発では、一部のページのプロパティを取得または監視...

MySQLで自動作成時間と変更時間を設定する方法の例

この記事では、MySQL の自動作成時刻と変更時刻を設定する方法について説明します。ご参考までに、詳...

CentOS8でyumソースを変更した後にウェアハウスキャッシュの同期に失敗する問題の詳細な説明

問題の原因: 最初は CentOS 8 のデフォルトの yum ソースを正常に使用できますが、次のコ...

MySQLデータベースが大きすぎる場合にバックアップと復元を行う方法

コマンド: mysqlhotcopyこのコマンドは、ファイルをコピーする前にテーブルをロックし、不完...

Vueを使用して手書き署名機能を実装する

個人的な実装のスクリーンショット:インストール: npm インストール vue-esign --sa...

MySQL でのフィルター条件なしのカウントの詳細な説明

カウント(*)成し遂げる1. MyISAM: テーブル内の行の総数をディスク上に保存し、フィルタリン...

MySQL 主キー ID を生成する方法 (自己増分、一意、不規則)

目次1. uuid関数を使用して、一意かつ不規則な主キーIDを生成します。 2. idの自動成長1....

MySQL 使用仕様の概要

1. InnoDBストレージエンジンを使用する必要がありますCPU と IO のパフォーマンスが向上...