Dockerで<none>なイメージを一括削除

docker<none> なイメージを一括で削除する方法です。

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

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              5af3c1791048        About an hour ago   359MB
<none>              <none>              033548dffcc8        About an hour ago   359MB
<none>              <none>              24883254aeab        2 hours ago         263MB
centos              7                   1e1148e4cc2c        32 hours ago        202MB
centos              latest              1e1148e4cc2c        32 hours ago        202MB

<none> なイメージだけを列挙する。

$ docker image ls --filter "dangling=true"
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              5af3c1791048        About an hour ago   359MB
<none>              <none>              033548dffcc8        About an hour ago   359MB
<none>              <none>              24883254aeab        2 hours ago         263MB

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

$ docker image ls -q --filter "dangling=true"
5af3c1791048
033548dffcc8
24883254aeab

IMAGE IDdocker rmi に渡してあげる。

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

確認

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              7                   1e1148e4cc2c        32 hours ago        202MB
centos              latest              1e1148e4cc2c        32 hours ago        202MB