メモ > サーバ > 各論: Docker > イメージの削除
イメージの削除
以下のイメージがあるとする
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
docker_php latest 60dd49c01909 8 minutes ago 603MB
<none> <none> d292eab3dce7 4 days ago 603MB
<none> <none> a656156c0a2b 4 days ago 603MB
<none> <none> 33ce37dfdb33 4 days ago 603MB
<none> <none> c1ef894332bd 4 days ago 603MB
<none> <none> 7263119c7e17 4 days ago 603MB
<none> <none> d7736e2e65fc 4 days ago 414MB
<none> <none> b7ea7f94f833 4 days ago 603MB
<none> <none> 43b73c46dc15 4 days ago 603MB
<none> <none> 72dd023deba3 4 days ago 603MB
<none> <none> 8891c90f9e4b 4 days ago 603MB
<none> <none> 76a32ff5c3a5 4 days ago 603MB
<none> <none> 8d9bb844d512 5 days ago 614MB
<none> <none> b24d7823befb 5 days ago 613MB
test_php latest cf48df93a65d 5 days ago 603MB
<none> <none> b6e175038af3 5 days ago 599MB
<none> <none> d97cd6ded3b1 5 days ago 599MB
<none> <none> d07e102c50d4 5 days ago 612MB
<none> <none> 10f32240ac7f 5 days ago 483MB
<none> <none> 0f314af243a7 5 days ago 479MB
<none> <none> 5cff5db49f52 5 days ago 603MB
<none> <none> c47cc7bb154a 5 days ago 603MB
<none> <none> 2eeb0b38ae6b 5 days ago 469MB
<none> <none> 00395ae4f436 5 days ago 668MB
<none> <none> 8cf20ab9261b 5 days ago 566MB
<none> <none> adb4648095e3 5 days ago 804MB
<none> <none> cbd0da7691d3 5 days ago 809MB
<none> <none> 25b1e7007ed5 5 days ago 466MB
code_ec-cube latest 96a12f7e05cf 7 days ago 1.11GB
unicolle_ec-cube latest 96a12f7e05cf 7 days ago 1.11GB
<none> <none> 9f25ec1ecdd7 7 days ago 1.11GB
<none> <none> d324f1c84dac 9 days ago 1.08GB
<none> <none> 197c01a416f5 9 days ago 1.08GB
eccube_ec-cube latest f7b92d781afa 12 days ago 1.09GB
<none> <none> ce73334a9207 12 days ago 918MB
<none> <none> 9e66155efbe9 12 days ago 569MB
php 7.4-apache 93e55f680811 12 days ago 414MB
<none> <none> 66c0f082674c 13 days ago 420MB
postgres 10 07d80b49d8bc 2 weeks ago 200MB
docker_mysql latest 8cf625070931 2 weeks ago 448MB
mysql 5.7 8cf625070931 2 weeks ago 448MB
test_mysql latest 8cf625070931 2 weeks ago 448MB
php 7.3-apache-stretch 65f81adeb23e 2 weeks ago 375MB
php 7.3-apache 666b66927747 2 weeks ago 411MB
hello-world latest d1165f221234 5 months ago 13.3kB
php 8.1-apache 24c791995c1e 2 years ago 355MB
schickling/mailcatcher latest a92223e5253a 3 years ago 86.4MB
以下のようなエラーになって削除できないことがある
$ docker image rm cf48df93a65d
Error response from daemon: conflict: unable to delete cf48df93a65d (cannot be forced) - image has dependent child images
$ docker image rm 8cf625070931
Error response from daemon: conflict: unable to delete 8cf625070931 (cannot be forced) - image has dependent child images
【docker】child imagesのせいでimageが消せなくてキレそうなあなたへ
https://zenn.dev/msickpaler/articles/607e562a52cf07
シェルスクリプトで対応する手もあるようだが、
今回は以下のように、「IMAGE ID」ではなく「REPOSITORY」を指定して削除できた
$ docker image rm test_php
Untagged: test_php:latest
$ docker image rm test_mysql
Untagged: test_mysql:latest
それでも削除できないことがあったが、リポジトリとタグを指定して削除できた
$ docker image rm public.ecr.aws/v0u7u3g9/base-nginx
Error: No such image: public.ecr.aws/v0u7u3g9/base-nginx
$ docker image rm public.ecr.aws/v0u7u3g9/base-nginx:1.0.3
Untagged: public.ecr.aws/v0u7u3g9/base-nginx:1.0.3
■REPOSITORYとTAGがnoneのイメージ
「<none>」のイメージが大量の残っている件について
Dockerで none なイメージを一括で削除するワンライナー - Qiita
https://qiita.com/DQNEO/items/e3a03a14beb616630032
docker pullを何回も叩いていると、ローカルのイメージが<none>になってしまうことがあります。
<none>になる条件は、新しいイメージが既存のタグを再利用したときにそうなるようです。
古い方のイメージがタグを剥奪されるみたいな感じ。
Dockerに<none>:<none>なイメージが生まれてくる理由
https://suin.io/540
<none>:<none>のイメージができるのは、同じ名前のイメージを作り直すのが原因です。Dockerでは異なるイメージに同じイメージ名を付けられません。
この<none>:<none>のイメージのことをDockerではdangling imageと呼びます。基本的にコンテナがこのイメージを参照していなければ、不要なイメージとなるので削除してかまいません。
以下をもとに削除したこともあった
docker imagesに表示される<none>を消す。dangling | codechord
https://codechord.com/2019/08/docker-images-none-dangling/
Docker imageが削除できない - Scribble
https://scribble.washo3.com/docker-cannot-image.html
Dockerのイメージを削除ができない時は「-f」オプションを使う - Qiita
https://qiita.com/jungissei/items/5907819063a177ac7c81
■不要なイメージを一括削除
Dockerの不要なコンテナ・イメージを一括削除する方法
https://suin.io/537
イメージを確認
docker image ls
コンテナが使っていないイメージをすべて削除
docker image prune