もうずっと前にビルドして以降、もはや使ってない docker images の残骸がローカルにいっぱい残ってたのでメモ。
Docker が今どれだけストレージを使ってるかを確認。
docker system df
6ヶ月以上前にビルドしたイメージを削除するのと、あとはビルドキャッシュも全部削除する。
#!/bin/bash
six_mo_ago=$(date -d "6 month ago" +%s)
docker images --format "{{.Repository}}:{{.Tag}} {{.CreatedAt}}" | while read image date; do
datepart=$(echo $date | awk '{print $1}')
image_date=$(date -d "$datepart" +%s)
if [ $image_date -lt $six_mo_ago ]; then
echo "Removing $image..."
docker rmi -f $image
fi
done
docker builder prune -f
6ヶ月以上アップデートしてないイメージもこれで消えちゃうので、そこは注意。
特定の文字列を含むイメージだけに絞りたいなら、 下記みたいに while ループの前に grep すれば良い。
docker images --format "{{.Repository}}:{{.Tag}} {{.CreatedAt}}" | grep -E 'foo|bar|baz' | while read image date; do