需求
在基于Docker环境的CI/CD或日常工作中,可能伴随着镜像的操作,其中就会有清理某个仓库需求,下面记录两种本人常用的方式,只是提供一个思路;
当然docker 命令结合 linux 命令本身就具有非常高的灵活性,只要有想法,可以写出各种各样的实现体。
第一种
利用 docker images 本身的特性
docker rmi -f $(docker images $REPOSITORY -q | sort | uniq)
docker images 甚至支持模糊匹配,于是有以下变体
docker rmi -f $(docker images hello-* -q | sort | uniq)
第二种
利用linux 灵活的命令
docker rmi -f $(docker images | grep $REPOSITORY | awk {'print $3'} | sort | uniq)
第二种的灵感来自“停止源于某镜像的所有容器”
docker stop $(docker ps -a | grep drone | awk {'print $1'})