一个是清理过期的image,也就是将名字为
# alias.zsh
alias 'dclean-none'='docker images|grep "^<none>"|awk '\''{print $3}'\''|xargs docker rmi -f'
另一个是清理docker build失败时产生的冗余image
# alias.zsh
alias 'dclean2'='docker ps -a|grep "^[a-f0-9]\{12\}[[:blank:]]\+[a-z0-9]\{12\}[[:blank:]]\+[[:print:]]\+[[:blank:]]\+[[:lower:]]\+_[[:lower:]]\+"|awk '\''{print $1}'\''|xargs docker rm'
因为严格来说没法绝对匹配,这个正则假设了IMAGE不是12位的小写+数字,但是有可能因为原来的镜像更新导致本来有名字的镜像,变成了sha编码,所以继续判定了末尾的NAMES是否是由#单词_单词#的结构组成的。
所以自己的镜像尽可能避免这个场景,或者有更好的方案欢迎留言~