Docker仓库在2.1版本中支持了删除镜像的API,但这个删除操作只会删除镜像元数据,不会删除层数据。在2.4版本中对这一问题进行了解决,增加了一个垃圾回收命令,删除未被引用的层数据。本文对这一特性进行了体验,具体步骤如下。
1、部署镜像仓库
(1)启动仓库容器
这里需要说明一点,在启动仓库时,需在配置文件中的storage配置中增加delete=true配置项,允许删除镜像,本次试验采用如下配置文件:
(2)上传镜像
(3)查看数据进行仓库容器中,通过du命令查看大小,可以看到当前仓库数据大小为61M。
2、删除镜像
删除镜像对应的API如下:
name:镜像名称
reference: 镜像对应sha256值
(1)发送请求,删除刚才上传的镜像
(2)查看数据大小
可以看到数据大小没有变化(只删除了元数据)
3、垃圾回收
(1)进行容器执行垃圾回收命令
命令:registry garbage-collect config.yml
(2)查看数据大小


发布评论