タグ名で docker イメージを一括削除

docker でタグ(リポジトリ)名でイメージを一括で削除する方法です。

まずはイメージの一覧を表示して現在の状態を確認する。

 1$ docker images
 2REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
 3xyz/web             v1                  8dfadeccadea        3 minutes ago       1.54GB
 4xyz/web             t7                  e4e9229828af        12 minutes ago      1.54GB
 5xyz/web             t6                  0d6e58a0e54b        32 minutes ago      1.54GB
 6xyz/web             t5                  a2e1db66cdaa        2 hours ago         1.54GB
 7xyz/web             t4                  6113657089e5        3 hours ago         1.54GB
 8xyz/web             t3                  b82aa94b9d5d        3 hours ago         1.54GB
 9xyz/web             t2                  088ea33a2476        5 hours ago         1.54GB
10xyz/web             t1                  777500b89a7e        6 hours ago         1.54GB
11xyz/db              latest              5d86a6d2e2c2        27 hours ago        1.44GB
12xyz/db              v1                  5d86a6d2e2c2        27 hours ago        1.44GB
13centos              6                   b5e5ffb5cdea        8 weeks ago         194MB
14centos              latest              5182e96772bf        8 weeks ago         200MB

xyz/web のイメージをすべて削除したいとする。

まずは、タグ xyz/web のみの一覧を表示してみる。

 1$ docker images ela/web
 2REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
 3xyz/web             v1                  8dfadeccadea        6 minutes ago       1.54GB
 4xyz/web             t7                  e4e9229828af        15 minutes ago      1.54GB
 5xyz/web             t6                  0d6e58a0e54b        35 minutes ago      1.54GB
 6xyz/web             t5                  a2e1db66cdaa        2 hours ago         1.54GB
 7xyz/web             t4                  6113657089e5        3 hours ago         1.54GB
 8xyz/web             t3                  b82aa94b9d5d        3 hours ago         1.54GB
 9xyz/web             t2                  088ea33a2476        5 hours ago         1.54GB
10xyz/web             t1                  777500b89a7e        6 hours ago         1.54GB

さらに IMAGE ID のみの表示とするため -q オプションを追加する。

 1$ docker images xyz/web -q
 28dfadeccadea
 3e4e9229828af
 40d6e58a0e54b
 5a2e1db66cdaa
 66113657089e5
 7b82aa94b9d5d
 8088ea33a2476
 9777500b89a7e

この IMAGE IDdocker rmi に渡してあげる。

$ docker rmi `docker images xyz/web -q`

削除されているか確認する。

1$ docker images
2REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
3xyz/db              latest              5d86a6d2e2c2        28 hours ago        1.44GB
4xyz/db              v1                  5d86a6d2e2c2        28 hours ago        1.44GB
5centos              6                   b5e5ffb5cdea        8 weeks ago         194MB
6centos              latest              5182e96772bf        8 weeks ago         200MB