今まで、awkとかxargsを駆使してやってました

1
$ docker images | awk '/none/{print $3}' | xargs docker rmi

別にこれでも良いし、他の条件も加えたい時には↑こっちの方が良いんだけど、dockerがよしなにやってくれるpruneっていうコマンドがあるそうです

1
2
3
4
5
6
7
8
9
10
11
// 不要なイメージの一括削除
$ docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Deleted Images:
deleted: sha256:6275edb02b93778360405c5bd5c96fed49ce8ea7787ac23817c9d0f05d954352
deleted: sha256:76601edbe917e74ea423b5d5d02d8fd6419d2287b39c0bd17cb9c4bf29cb7579
deleted: sha256:38ff1e3c987540eb2afe808b959a57c0aa001a006baf22a6c090ef53d894f114
deleted: sha256:bf77dd7834bb1941895c66a3626234bc470dd855b1b90b1ebd2f1062a1643393
deleted: sha256:09e751afdcae17dced8728e9eddfdbe6f0247c56633a3658fdf7abf5f494ee4a
deleted: sha256:4cec2dc92945670247e2b750643719d9ffbb8746bfc9e1f1bc2472150134e3ef

イメージ以外にも、containerやnetworkにもあるコマンドですが、こっちはあんまり使う機会ないかな(残しておきたいstopped状態のコンテナも同時に消えてしまいそうでこわい)

1
2
3
4
5
6
7
8
9
// 不要なコンテナの一括削除
$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N]

// 不要なネットワークの一括削除
$ docker network prune
WARNING! This will remove all networks not used by at least one container.
Are you sure you want to continue? [y/N]