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 境界線の半分または部分的に表示される実装コード

1. 疑似クラスを使用して境界線の半分を表示する <!DOCTYPE html> <...

1 行のコードでさまざまな IE 互換性の問題を解決します (IE6-IE10)

x-ua-compatible は、IE ブラウザがページを解析およびコンパイルするためのモデルを...

JD.com フラッシュセール効果を実現する JavaScript

この記事では、JD.comのフラッシュセール効果を実現するためのJavaScriptの具体的なコード...

MySQLでトランザクションを開始する方法

序文この記事では主にMySQLでトランザクションを開始する方法について紹介します。関連情報については...

MySQL の基本ステートメントを最適化するための 10 の原則の概要

序文データベースの応用において、プログラマーは継続的な実践を通じて多くの経験を積んできました。これら...

Nginx http を https にアップグレードする手順を完了する

httpとhttpsの違いは一部のウェブサイトでは、http を開くと、安全ではないというメッセージ...

nginx proxy_cache バッチキャッシュクリアスクリプトの紹介

前書き: 以前、公式の nginx proxy_cache を CDN 静的キャッシュとして使用して...

MySQL の完全なデータベース バックアップ データを使用して単一のテーブル データを復元する方法

序文データベースをバックアップするときは、データベース全体のバックアップを使用します。ただし、何らか...

VMware で VMware ツールをインストールしてもインストール ファイルが表示されない問題を解決する方法

VMware ツールは VMware の使用に非常に便利です。そのため、VMware ツールをインス...

JavaScript ベースのシンプルな計算機の実装

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...

vue-element-admin グローバル読み込み待機中

最近の要件:グローバルロード、すべてのインターフェースはロード待機機能を表示するかどうかを手動で制御...

CocosCreatorがスキル冷却効果を実装

CocosCreatorがスキルCD効果を実現多くのゲームにはスキルがあります。プレイヤーがスキルボ...

実用的なクイックスタートReactルーティング開発

インストールインストールするには、次のコマンドを入力します。 // ネプ npm で react-r...

SSH ポート転送とは何ですか?何の役に立つの?

目次序文1. ローカルポート転送2. リモートポート転送3. 動的ポート転送(SOCKS5) 4. ...