首页 > 运维 > Docker > registry私有仓库清理
2020
04-13

registry私有仓库清理

实操一( 使用官方API + GC ):

使用官方提供的方法可以较为简便的清理镜像仓库。整个清理过程可能需要几百毫秒到几秒的时间。此操作有一定的危险性,因此清理镜像不宜过于频繁。官方在git上也有类似描述。点击查看

1.准备,修改仓库配置文件,一般在容器内的

在storage下添加delete的许可之后,重启镜像仓库。

保存后退出容器,退出容器后重启registry

2、获取待删镜像的digest

获取镜像digest的API为如下几个:

注意:仓库地址一定要是https, 并且参数要带 -k 1.13以前的docker不用如此

注:因为我的私有仓库设置有认证,所以做以上操作要加账号和密码

本地测试

获取镜像digest_hash

3.调用官方的HTTP API V2删除镜像

删除镜像的API为:

4.调用GC清理镜像文件

执行后

注意: gc清理需要时间,如果在gc过程中刚好有push操作,可能会产生未知的问题,建议设置read-only模式之后再进行gc,然后再改回来。

5、重启docker registry

注意,如果不重启会导致push相同镜像时产生layer already exists错误。

下面是我个人用的脚本

保存脚本赋予权限,直接执行查出所有image镜像名称

最后编辑:
作者:shooter
这个作者貌似有点懒,什么都没有留下。