Docker でローカルイメージを削除する

Isaac Tony 2024年2月15日
  1. Docker で未使用でぶら下がっているローカルイメージを削除する
  2. Docker で特定のローカルイメージを削除する
  3. Docker のフィルターを使用してタグなしローカルイメージを削除する
  4. Docker ですべてのローカルイメージを削除する
Docker でローカルイメージを削除する

このチュートリアルでは、Docker でローカルイメージを削除する方法を紹介します。

Docker で未使用でぶら下がっているローカルイメージを削除する

タグなしの Docker イメージに加えて、未使用のイメージと、削除したいコンテナもあるとします。その場合は、以下に示すコマンドを選択してください。

$ docker system prune -a

このコマンドは、はいを選択した場合、このコマンドが次のことを行うことを通知する警告を表示します。

  • 停止したコンテナをすべて削除します。
  • 少なくとも 1つのコンテナで使用されていないすべてのネットワークを削除します。
  • 少なくとも 1つのコンテナが関連付けられていないすべてのイメージを削除します。
  • すべてのキャッシュを削除します。

ただし、このコマンドが実行する必要のあるものに準拠しておらず、削除するだけの場合は、次のようにします。

  • タグなしまたはぶら下がっているイメージ。
  • 停止したコンテナ。
  • ぶら下がっているキャッシュ;
  • 少なくとも 1つのコンテナで使用されていないネットワーク。

この場合、以下に示すように、-a タグを含めずに prune コマンドを使用します。

$ docker system prune

Docker で特定のローカルイメージを削除する

また、ローカルシステムから特定のイメージを削除し、他のすべてのファイルをそのままにしておくこともできます。

その場合、削除したい特定のイメージのイメージ ID が必要になります。Docker デスクトップアプリケーションのイメージページからアクセスできます。

Docker Desktop を使用したイメージ ID へのアクセス

以下のコマンドを実行して、ターミナルまたは DockerCLI を使用してイメージ ID にアクセスすることもできます。

isaactonyloi@DESKTOP-HV44HT6:~$ docker images -a
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    c316d5a335a5   3 weeks ago   142MB

イメージ ID を取得したので、次に示すように、イメージ ID に追加する docker rmi コマンドを使用してその特定のイメージを削除できます。

$ docker rmi c316d5a335a5

出力:

Untagged: nginx:latest
Untagged: nginx@sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767
Deleted: sha256:c316d5a335a5cf324b0dc83b3da82d7608724769f6454f6d9a621f3ec2534a5a
Deleted: sha256:67e568696593c33b4a15c9d81dc6f67499b8d973b88eb49b53d47bf4dbf4d187
Deleted: sha256:0f8d4e3d979c540644f248b4206cf540978166b095223bdc950628dca2e8f3f1
Deleted: sha256:5d75bfe8a7422476a495b27c8a1598d1206137631d350b8bdee13bc88f365282
Deleted: sha256:8284a9e28c625b2826efdd6160ea1ff7f710881a4a2afe1ef58a5eb51d3f919e
Deleted: sha256:89a1db9e1079b7574c1a707bc8c1fe04ff723bc71d4bca8bc48653e9a32186d2
Deleted: sha256:7d0ebbe3f5d26c1b5ec4d5dbb6fe3205d7061f9735080b0162d550530328abd6

Docker のフィルターを使用してタグなしローカルイメージを削除する

フィルタやワイルドカードを使用して、ぶら下がっているイメージ、つまりどのコンテナにも関連付けられていないイメージを識別することもできます。フィルタタグ -f を使用して、dangling=true の条件を満たすイメージを見つけることができます。

以下のコマンドは、どのコンテナにも関連付けられていないすべてのイメージを一覧表示する必要があります。ただし、システムにタグなしのイメージがない場合、コマンドはヘッダーのみを返すことに注意してください。

$ docker images -a -f dangling=true
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    c316d5a335a5   3 weeks ago   142MB

Docker ですべてのローカルイメージを削除する

-q タグを使用すると、-a タグと一緒に使用すると、ローカルシステム内のすべてのイメージ ID を取得して一覧表示できます。

$ docker images -a -q
54c9d81cbb44
c316d5a335a5

このコマンドを使用すると、docker rmi の下にあるすべてのイメージを一覧表示して、システムからすべてのイメージを削除できます。このコマンドをネストしてすべてのイメージを削除する方法は次のとおりです。

$ docker rmi $(docker images -a -q)

出力:

Untagged: ubuntu:latest
Untagged: ubuntu@sha256:669e010b58baf5beb2836b253c1fd5768333f0d1dbcb834f7c07a4dc93f474be
Deleted: sha256:54c9d81cbb440897908abdcaa98674db83444636c300170cfd211e40a66f704f
Deleted: sha256:36ffdceb4c77bf34325fb695e64ea447f688797f2f1e3af224c29593310578d2
著者: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

関連記事 - Docker Image