纯Docker用得头疼,<none>tag问题刚处理,突然仓库爆了,虽然仓库也是按镜像的layer来存储的,但是自己的源码打出来的层,每次肯定都不一样,那就每次都要占用一份空间了。一般写博客少,大部分网上一搜都有了,都是互相抄的,结果这次实在没找到直接结果,东拼西凑的测试加上偶然的发现,终于搞出了个还算可以的方案,也不完善,不过解决问题为主,所以要记下来。话不多说,进入正题:
1. 先写基础的删除命令(有用户认证的加上[]里的,或者提前做docker login,没有的去掉):
curl [-u username:pwd] -X DELETE http://ip:port/v2/$image/manifests/sha256:$sha
* 提前说明:这个命令只是逻辑删除,硬盘上的内容还在的,后面还要做一下物理删除
网上大部分的找$sha的方案都是通过tag找,这样只能找到最后一个镜像,跟历史的完全没关系,我删了半天删了十几个镜像,才少了几百MB,真的是NMB。后来在做物理清理的时候,发现一个神奇的内容,如图: