Docker を使用する過程で、多くの人は、Docker イメージまたはコンテナーを削除した後、占有されているディスク容量が減らず、100% のままであるという問題に遭遇するかもしれません。どうしてこれなの?詳しく見てみましょう。
1. Docker の基本的な使い方
問題の原因を理解する前に、Docker の基本的な使い方を簡単に確認してみましょう。
docker コンテナを実行します:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
ここで、IMAGE は実行するイメージの名前です。 docker イメージを渡すことができます コマンド ビュー;
OPTIONS には次のものを含めることができます:
-d はバックグラウンドで実行するコンテナーを指定します;
-p はコンテナーのポートを指定しますマッピングの形式は次のとおりです: ホスト ポート: コンテナ ポート;
--name はコンテナ名を指定します;
-v はホスト ディレクトリとコンテナ ディレクトリのマウント ポイントを指定します;
rm はコンテナを自動的に削除します。
Docker コンテナーの削除:
docker rm CONTAINER [CONTAINER...]
ここで、CONTAINER は、Docker を通じて表示できるコンテナーの名前または ID を指します。 ps -a コマンド。
Docker イメージの削除:
docker rmi IMAGE [IMAGE...]
IMAGE は、Docker イメージを通じて表示できるイメージの名前または ID を指します。指示。
2. 問題分析
上記のコマンドを使用して Docker コンテナーまたはイメージを削除する場合、通常は 2 つの状況が発生します:
上記の状況に基づいて、次の結論を導き出すことができます。Docker コンテナーまたはイメージを削除しても、ディスク領域がすぐに解放されることは保証されず、特定のツールを使用して手動でクリーニングする必要があります。
3. 解決策
Docker は実行時に実際にホストのファイル システムを使用するため、Docker コンテナまたはイメージが削除された場合は、ホスト上に残っているファイルを手動でクリーンアップする必要があります. ジャンクファイルを削除することによってのみ、ディスクスペースを解放できます。
次は、具体的なクリーニング方法です。
Docker コンテナでは、いくつかの一時ファイルやログ ファイルが保持される可能性があるため、コンテナを削除するときは、スペースを占有しすぎないように、これらのファイルも一緒に削除する必要があります。
次のコマンドでクリーンアップできます:
docker ps -aq | xargs docker rm -v
このコマンドの機能は次のとおりです: すべてのコンテナーの ID を検索し、 put them ID を docker rm コマンドに渡して、docker が対応するコンテナーと関連するすべてのボリュームを自動的に削除できるようにします。
コンテナを実行すると、Docker は公式リポジトリまたは他のカスタム リポジトリから必要なイメージをダウンロードし、ローカルのバックアップに保存します。これらのバックアップは使用するスペースが少なくなりますが、未使用のイメージが多数ある場合はディスク スペースが不足する可能性もあります。
未使用のイメージは次のコマンドで確認できます:
docker image -q | xargs docker Inspection --format='{{.Id}} {{.RepoTags}} {{.サイズ}}' | sort -k 3 -h
このコマンドの機能は、すべての画像の ID、タグ、サイズをリストし、サイズ順に並べ替えることです。
次のコマンドを使用して、アイドル状態のイメージをすべて削除できます:
docker image -qf dangling=true | xargs docker rmi
このコマンドの機能は次のとおりです: すべて検索未使用のイメージはミラーリングして削除します。
最後に、上記の 2 つの方法が効果がない場合は、Docker データ ディレクトリを手動でクリーンアップできます。デフォルトでは、Docker データ ディレクトリは /var/lib/docker/ にあります。
次のコマンドを使用してディレクトリをクリーンアップできます:
docker system prune -a -f
このコマンドの機能は次のとおりです: 未使用を含むすべての未使用オブジェクトを削除します。画像、未使用のデータ、未使用のビルド キャッシュ。
4. 概要
Docker を使用するプロセスでは、ディスク領域を解放するために、コンテナー、イメージ、および Docker データ ディレクトリに残っているいくつかのジャンク ファイルを手動でクリーンアップする必要があります。 。これらのファイルは大量のディスク領域を占有するだけでなく、システム リソースも占有し、システムのパフォーマンスに影響を与えます。したがって、Docker ジャンク ファイルを定期的にクリーンアップすることが非常に必要です。
以上がdocker でファイルが削除されたのに、ディスクがまだ 100% のままなのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。