OCI 与容器镜像构建

本文探讨了OCI(开放容器倡议)的起源及其与Docker的关系,详细讲解了OCI Image与Docker Image的异同,包括它们的区别和联系,并介绍了如何使用skopeo进行镜像转换。此外,还提到了多种无Docker环境下的镜像构建工具,如BuildKit、buildah和kaniko等。
摘要由CSDN通过智能技术生成

大家好,我是张晋涛。

这篇文章中我将介绍 OCI 及容器镜像相关的内容,欢迎留言讨论。

OCI 的前世今生

2013 年 3 月 dotCloud 公司在 PyCon 上进行了 Docker 的首次展示,随后宣布开源。自此 Docker 开始被众人知晓,随后掀起了一股容器化的热潮。

在 2014 年 6 月 Docker 1.0 正式发布,有近 460 位贡献者和超过 8700 次提交,这也标志着 Docker 达到了生产可用的状态。

在当时,提到容器化第一想法就是用 Docker 。而当时 Docker 的实现或者说发展方向主要是由 Docker Inc. 公司控制的,并没有一个统一的工业标准。这对于一些头部公司而言,显然是不能接受的,没有统一的工业标准意味着如果选择了使用 Docker 的容器化技术,便会被 Docker Inc. 公司所绑定;加上随着 Docker 软件的升级,某些功能或者特性必然会进行变动,没人能保证不发生破坏性变更。

所以,为了推进容器化技术的工业标准化,2015 年 6 月在 DockerCon 上 Linux 基金会与 Google,华为,惠普,IBM,Docker,Red Hat,VMware 等公司共同宣布成立开放容器项目(OCP),后更名为 OCI。它的主要目标便是 建立容器格式和运行时的工业开放通用标准。

发展至今, OCI 制定的主要标准有三个分别是 runtime-specimage-specdistribution-spec 这三个标准分别定义了容器运行时,容器镜像还有分发的规范,后面会展开介绍。

为了支持 OCI 容器运行时标准的推进,Docker 公司起草了镜像格式和运行时规范的草案,并将 Docker 项目的相关实现捐献给了 OCI 作为容器运行时的基础实现,现在项目名为 runc

后来 Docker 将其容器运行时独立成了一个项目,名为 containerd 并将此项目捐献给了 CNCF ,现在已经是 CNCF 毕业项目了。

OCI image vs Docker image

OCI 的建立推动了容器技术的工业标准化,但是否此标准就是唯一呢?其实不然。在成立 OCI 并制定 image-spec 标准的时候 Docker 已经空前繁荣,并得到了广泛的应用。

由于标准只定义了最基本的内容,想要将 Docker 的实现全部按照标准进行改造的话,会对 Docker 造成破坏性变更,也不利于 Docker 功能的迭代。

所以,Docker 为了支持 OCI 标准的普及,已经推进了 registry 对 OCI 镜像的支持,现在也正在给 Docker 自身增加适配中,目标是让 Docker 支持两种镜像格式,分别是符合 Docker 标准的镜像和符合 OCI 标准的镜像。

那这两者有什么异同呢?我们来逐步看下。

Docker Image 和 OCI Image 的区别和联系

在我以前的文章中我们已经详细的从根本上介绍了 Docker image 是什么,这里我们就快速的介绍下。

每个 Docker 镜像都是由一系列的配置清单和相应的层进行组织的。每个层一般都是 tar 格式的归档,配置清单中描述了对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张晋涛-MoeLove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值