不要なDockerイメージを一括で削除するテクニック
Posted On 2022-11-22
Dockerで不要な(リポジトリやタグがnone)のイメージを、イメージIDをいちいち入力せずに一括で消去する方法を紹介します。ゴミイメージが溜まったときに便利です。
目次
想定
以下のような状況で、不要な(REPOSITORYが「none」の)Dockerイメージを一括で消去したい。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 780bcd6071d1 8 seconds ago 1.03GB
<none> <none> d57d97605ad8 19 seconds ago 1.03GB
<none> <none> 72a739cdc9e5 31 seconds ago 1.03GB
<none> <none> ea72ec46e38a 39 seconds ago 1.03GB
fastapi_02_demo latest 6f2bb0b27a65 3 hours ago 1.03GB
fastapi_01_demo latest dab14bd5bd2e 10 hours ago 1GB
tiangolo/uvicorn-gunicorn-fastapi python3.8 d0662a57a8c4 10 days ago 1GB
Dockerのビルドやデバッグでハマったときにこうなりがち。「docker rmi 780bcd6071d1 d57d97605ad8」…といちいち入力するのは面倒くさい。
結論
docker rmi $(docker images -f "dangling=true" -q)
これでOK
解説
- 「docker images」の「-f」は指定した条件で抽出する「フィルタリング」オプション
- 「dangling=true」は、ダングリング(宙ぶらりんな)状態。具体的には「none:none」の状態のイメージ
- 「-q」は「–quiet」のオプションで、イメージIDのみ表示
$以下の部分のみ実行すると、
$ docker images -f "dangling=true" -q
780bcd6071d1
d57d97605ad8
72a739cdc9e5
ea72ec46e38a
先程示したコマンドは、削除するイメージIDを動的に出力していることを表します。
実際に全部を実行すると、望んだ通りの結果になっているのがわかります。
$ docker rmi $(docker images -f "dangling=true" -q)
Deleted: sha256:780bcd6071d19dfa00c5442327001a304f8c2134636435d1aa251c54c69748f6
Deleted: sha256:6048a2893e194ef868146e5fbadd55d2dfe162bb9e8f53327be516d52ab9ebfd
Deleted: sha256:d57d97605ad84c01db1150ee3d6f56fd35c632d1510c2bc337e4e2e2329737f9
Deleted: sha256:387f9f06c879a096491e87bd381f631c28d314c81564f6c7a826ebbb77cb2101
Deleted: sha256:72a739cdc9e53e2dee92876e0d9f726c38d6e13442a75ab39eb2cd22cb2a58d7
Deleted: sha256:01260c8d1e3a0a14cd6927c73c79551ada58b2f4f059a99b6f50376a14d8490a
Deleted: sha256:ea72ec46e38a8f05833c6d36b3e088853860273c24cacf2f29c74a00a2ab78cf
Deleted: sha256:7369d6815b94831dea1d17e392e43c572ca1637348547757056a40fb1063c1d1
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
fastapi_02_demo latest 6f2bb0b27a65 3 hours ago 1.03GB
fastapi_01_demo latest dab14bd5bd2e 10 hours ago 1GB
tiangolo/uvicorn-gunicorn-fastapi python3.8 d0662a57a8c4 10 days ago 1GB
参考
https://docs.docker.jp/engine/reference/commandline/images.html#dangling
Shikoan's ML Blogの中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内
技術書コーナー
北海道の駅巡りコーナー