云原生制品那些事(2):OCI 镜像规范

题图摄于故宫角楼

注:微信公众号不按照时间排序,请关注“亨利笔记”,并加星标以置顶,以免错过更新。

《Harbor权威指南》招募英文版翻译人员

本篇继续和大家说说镜像那些事,是连载之二,从《Harbor权威指南》一书节选的纯技术干货,敬请关注、转发和收藏。

第一篇:容器镜像的结构

第二篇:OCI 镜像规范

第三篇:OCI 制品

第四篇:Registry 的作用原理

《Harbor权威指南》目前当当网优惠中,点击下图直接购买。

1.5  OCI镜像规范

OCI 镜像规范是以 Docker 镜像规范 v2 为基础制定的,它定义了镜像的主要格式及内容,主要用于镜像仓库存放镜像及分发镜像等场景,与正在制定的 OCI 分发规范密切相关。

OCI 运行时在创建容器前,要把镜像下载并解压成符合运行时规范的文件系统包,并且把镜像中的配置转化成运行时配置,然后启动容器。

OCI 定义的镜像包括4个部分:镜像索引(Image Index)、清单(Manifest)、配置(Configuration)和层文件(Layers)。

其中,清单是JSON格式的描述文件,列出了镜像的配置和层文件。配置是JSON格式的描述文件,说明了镜像运行的参数。层文件则是镜像的内容,即镜像包含的文件,一般是二进制数据文件格式(Blob)。一个镜像可以有一个或多个层文件。(在搜狐、CSDN等网站转载亨利笔记的文章均为未经授权的剽窃)

镜像索引不是必需的,如果存在,则指明了一组支持不同架构平台的相关镜像。镜像的 4 个部分之间是通过摘要(digest)来相互引用(reference)的。镜像各部分的关系如下图所示。

下面详细讲解各部分的结构和作用。


1).镜像索引

镜像索引是镜像中可选择的部分,一个镜像可以不包括镜像索引。如果镜像包含了镜像索引,则其作用主要指向镜像不同平台的版本,代表一组同名且相关的镜像,差别只在支持的体系架构上(如 i386 和 arm64v8、Linux 和Windows 等)。索引的优点是在不同的平台上使用镜像的命令无须修改,如在 amd64 架构的 Windows 和ARM架构的 Linux 上,采用同样的“docker”命令即可运行 Nginx 服务:(在搜狐、CSDN等网站转载亨利笔记的文章均为未经授权的剽窃)

$ docker run -d nginx

用户无须指定操作系统和平台,就可完全依赖客户端获取正确版本的镜像。OCI的索引已经被 CNAB等工具广泛用来管理与云平台无关的分布式应用程序。

下面是一个索引示例:

{

  "schemaVersion": 2,

  "manifests": [

    {

      "mediaType": "application/vnd.oci.image.manifest.v1+json",

      "size": 8342,

      &

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值