Dockerイメージは非常に大きくなる可能性があり、コンテナーを頻繁に操作する場合は、ストレージの多くを占有している可能性があります。ダウンロードした画像をクリーンアップし、不要な古いファイルを削除する方法について説明します。
DockerイメージとDockerコンテナ
Docker Imagesは、コンテナーとは異なる方法でデータを処理します。イメージは、Dockerfileからビルドされ、DockerHubにプッシュされる読み取り専用ファイルです。新しいバージョンをダウンロードするたびに、Dockerはその新しいバージョンのファイルをダウンロードする必要があります。古いバージョンは引き続きローカルドライブに保存されます。
コンテナはイメージから作成され、通常、独自のファイルシステムとボリュームがアタッチされています。コンテナを停止すると、ボリュームに保存されていないデータはすべて削除されます。したがって、コンテナによって使用されるデータをクリーンアップするには、コンテナを停止してボリュームを削除するだけです。
イメージをクリーンアップするために、Dockerはガベージコレクションを実行するためのいくつかのコマンドを提供します。
画像の剪定
古いバージョンのイメージであろうと、アクティブに実行されていないコンテナからのイメージであろうと、必然的に使用されていないイメージになってしまいます。いずれの場合も、通常、イメージを削除しても問題はありません。再度必要になった場合、Dockerはリモートリポジトリからイメージをフェッチするだけです。
システムに保存されているすべての画像を表示するには、次のコマンドを使用できます。
docker image ls
これらすべてのバージョンがこの出力で大量のスペースを占めるように見えますが、異なるバージョンが段階的に保存されるため、実際には新しいバージョンからの変更のみがディスクに保存されます。
画像IDを指定して、画像を手動で削除できます:
docker image rm 3a8d8f76e7f8f
ただし、はるかに安全な方法は、組み込みのprune
を使用することです。 コマンド。すべての画像を検索して、アクティブな参照がない画像を見つけて削除します。
docker image prune -a
-a
を省略します タグは、タグ付けされているが使用されていない画像を保持します。フラグを付けると、アクティブに使用している画像のみが残ります。
prune
コマンドは解放されたスペースの量を示しますが、Dockerが前後に使用しているストレージの量を手動で確認する場合は、du -sh
を使用できます。 Dockerストレージディレクトリ:
sudo du -sh /var/lib/docker/
このディレクトリは、C:ProgramDataDockerDesktop
にあります。 Windowsおよび~/Library/Containers/com.docker.docker/Data/vms/0/
の場合 macOSで。