Help us understand the problem. What is going on with this article?

Dockerで none なイメージを一括で削除するワンライナー

More than 1 year has passed since last update.

docker pullを何回も叩いていると、ローカルのイメージが<none>になってしまうことがあります。

$ docker images
REPOSITORY             TAG                          IMAGE ID            CREATED             VIRTUAL SIZE
node                   latest                       6d123ea65021        2 weeks ago         706.5 MB
centos                 latest                       2b8d6139a545        2 weeks ago         212.1 MB
postgres               latest                       dcce0da1c311        2 weeks ago         213.9 MB
mysql                  latest                       97454fa6c9d3        2 weeks ago         282.8 MB
<none>                 <none>                       9552b2f0723b        2 weeks ago         255.7 MB
debian                 latest                       1265e16d0c28        2 weeks ago         84.98 MB

<none>になる条件は、新しいイメージが既存のタグを再利用したときにそうなるようです。
古い方のイメージがタグを剥奪されるみたいな感じ。

<none>イメージを一括削除する

-f(フィルタ)オプションを使うと イメージを抽出することができます。

docker images -f "dangling=true"

この出力を使ってイメージ一括削除すればOKです。

docker rmi $(docker images -f "dangling=true" -q)

追記

v1.25以降は、下記のようにもっと簡単にできます。
https://docs.docker.com/engine/reference/commandline/image_prune/

docker image prune
DQNEO
PHP/Go/Perl/C/Docker/Linux/Git/AWS
http://dqn.sakusakutto.jp
mercari
フリマアプリ「メルカリ」を、グローバルで開発しています。
https://tech.mercari.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away