Docker Registry 2.1.1
1)catalog api, 支持用户list Registry中所有内容。
2)manifest 文件和 layer文件的软删除。
3)支持从cache中 pull镜像,作为Dockerhub的代理。
4)存储驱动支持: 增加 阿里云 OSS 、Ceph 、Openstack Swift
Docker Registry 2.2.0
1)存储驱动支持:增加 Google Cloud Storage Driver.
2)只读模式: Registry只支持 读请求。维护或一些有风险的管理员操作时 需要。
3)支持读取环境变量的配置文件。
4)支持notification endpoint 的健康状态检查。允许管理员通过放置文件的方式,暂时屏蔽掉一个Registry实例。
5)支持仓库管理员通过设置返回头部,来提升安全性。
Docker Registry 2.2.1
6)Storage Driver 支持正确处理空目录
7)减少layer下载时的 roundtrips
8)catalog api的 性能优化
Docker Registry 2.3.0
1)支持镜像 manifest文件 v2版本,schema 2 格式。 该格式的描述文件有两个主要目的: 一是支持Docker engine的镜像内容可寻址。 二是允许多重架构的镜像存在。即通过在更加丰富的manifest文件中描述平台相关的镜像信息。 https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md
2)跨镜像层的mount 支持上传镜像时,对于已经存在的公共的blobs文件,并不会重复上传。而只是通过“浅复制”创建已存在镜像blobs的关联文件。 该功能通过上传镜像时,减少实际传输的数据,加快镜像的分发速度。
Docker Registry 2.4.0
1)新的 AWS S3 Storage Driver. 实现了 基于AWS s3 sdk的存储驱动,增强了性能和稳定性。
2)垃圾回收。垃圾回收机制 会把未被Manifests关联的镜像层删除。
Read-only mode
如果打开Registry的Read-only 模式,将无法进行镜像上传。该模式用在 垃圾回收阶段,临时禁止用户上传镜像到后端文件系统。在运行垃圾回收之前,需要打开该模式。回收完后,需要关闭该模式。该过程重启Registry两次。
垃圾回收流程
与Registryv2.2.1不同,该版本Registry通过 Manifests 和Blobs提供的API并不能真正删除后端文件系统中的文件,实际存储在Ceph中的文件只有到垃圾回收的时候才会被真正删除。 分两个阶段:
1、“Mark”阶段。进程会扫描到仓库中所有manifests文件,生成一个‘mark set',包含所有镜像层文件(blobs)的digest。这些关联到的blobs不会被删除。
2、“Sweep”阶段。进程会扫描到所有未在mark set中关联的blobs,删除之。 注意:在gc时,需要确保registry处于只读模式。因为如果在gc时,上传的镜像可能会被误删。官方说,这种模式的gc只是暂时提供,之后会支持垃圾回收自动在后台运行而无需手动操作。
Tips
1、 rados storage driver 移除。
2、 v1 signature 失效。通过采纳schema2 格式的manifest文件和弃用签名,有助于提升下载镜像时生成和返回一个单独的libtrust签名。
Docker Registry 2.5.0
1)增加了镜像层blob的访问控制中间件。
2)增加来自外部源的镜像层。
3)删除 签名store。