你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

背景

Docker Registry在2.1版本中支持了删除镜像的API,但这个删除操作只会删除镜像元数据,不会删除层数据, 这样随着镜像的反复上传,删除,仓库占用的空间会越来越大,只到撑爆整个数据磁盘。Docker Rigistry在2.4版本中对这一问题进行了解决,增加了一个垃圾回收命令,删除未被引用的层数据,本文对这一特性进行了体验,详细记录了删除镜像,回收空间的具体步骤。

部署镜像仓库

启动仓库容器

你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

这里需要说明一点,在启动仓库时,需在配置文件中的storage配置中增加delete=true配置项,允许删除镜像,本次试验采用如下配置文件:

你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

上传镜像

你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

验证

查看数据进行仓库容器中,通过du命令查看大小,可以看到当前仓库数据大小为61M。

你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

删除镜像

API

你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

name: 镜像名称

reference: 镜像对应sha256值, 即使用docker push命令上传镜像成功后终端输出的sha256结果,也可以用docker inspect获取:

你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

示例

发送请求,删除刚才上传的镜像

你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

验证数据大小

你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

可以看到数据大小没有变化(只删除了元数据)

垃圾回收

参考命令

你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

示例

你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

验证查看数据大小

你的Docker镜像仓库占用了多少空间?删除镜像与空间回收

闻道有先后,术业有专攻。小编希望和大家一起交流经验,探讨问题,如果大家觉得本文还不错的话,请大家多多转发,让更多有需要的人看到。

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据