优化 Docker 体验,Docker Registry-V2 加入 OCI 促进行业标准化

简介: Docker Registry HTTP API V2 规范将在 Open Container Initiative (OCI) 中采用。OCI由 linux 基金会进行管理,致力于制定容器化产业标准。

screenshot

本文首发自“Docker公司”公众号(ID:docker-cn)
编译丨小东
每周一、三、五 与您不见不散!


我们很高兴地宣布,Docker Registry HTTP API V2 规范将在 Open Container Initiative (OCI) 中采用。OCI由 linux 基金会进行管理,致力于制定容器化产业标准。Docker 团队很自豪地看到应用栈的另一个方面成为行业标准。正如我们对镜像格式所做的那样,我们很乐意作为 OCI 社区的一部分,正式与容器生态系统共享和协作。我们的分发协议是市场上所有容器注册管理机构的基础,它非常的强大,容器内容遍布全球。


这个协议是什么?

通过这个协议我们可以看到,Docker 核心功能之一就是能够上传和下载镜像。这个概念从创建最初的“Hello, World”容器开始就已经介绍给了每个用户,而且它占了 Docker 体验的很大一部分。我们时常坐在电脑前感叹这个神奇的概念,这种简单的能力很容易被人忽视其中大量的设计与思考。

当 Docker 首次发布时,团队就制定了 Image Registry 的协议,并很快投入使用。Image Registry 提供了一种可以跨机器存储镜像的通用服务。它可以让用户在一台机器上构建镜像,然后在另一台机器下载这个镜像,并在这台机器上运行该镜像。现在有一种很方便、快捷的方法拉取并运行整个软件。这个实现为 Docker Hub 提供动力,并最终实现开源(https://github.com/docker/docker-registry)。这个协议和它背后的实现最终被称为 V1 协议。许多镜像都可以被上传和下载,深受开发人员喜爱。


演 化

上传和下载镜像持续不断,但是随着用户用其他的 Registry 来使用 Docker 时,V1 协议的问题就出现了。问题的核心围绕着 Registry 之间共享身份的概念,以及与 Docker 实现的耦合度过紧。问题在于,如果一个 Docker 引擎从两个不同的 Registry 获取镜像,那么 Docker 引擎可能会对镜像的身份标签产生分歧。我们需要修改一些东西确保用户使用多个 Registry 时不会出现问题。

到 2014 年底,Docker 通过引入具有初始 API 结构的提案来解决这些问题。问题的关键是设计出具有 Content—addressable 的镜像,它允许 Registry 为镜像提供通用的身份标签,并去除镜像格式内部细节与 Docker 引擎之间的耦合性,从而使其能够独立发展。社区聚集在一起,就该提案提出了140条意见,并纳入了规范和实施。这一努力的结果是,在2015年春季发布了 Docker Registry 2.0,并在 Docker 1.6 版本中支持 GA。自此之后,Docker 社区就发展起来了,并一直致力于满足用户不断增长的需求。


下一步

随着 Docker 的普及,该协议已在整个行业中得到了广泛应用,并在各种各样环境中进行了测试。该协议与诸如签名和验证等补充技术相结合,就如同 Docker EE 一样。通过将此规范捐献给 OCI,我们可以确保容器体验的这一重要部分成为 OCI 官方标准。随着对分发规范提案的认可,该协议将作为 OCI 的一部分推动容器行业蓬勃发展。

相关文章
|
2月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
271 7
|
3月前
|
缓存 5G 开发者
【提效】docker镜像构建优化-提速10倍
本文主要记录了自己通过查阅相关资料,一步步排查问题,最后通过优化Docerfile文件将docker镜像构建从十几分钟降低到1分钟左右,效率提高了10倍左右。
377 11
|
3月前
|
存储 Java 开发者
成功优化!Java 基础 Docker 镜像从 674MB 缩减到 58MB 的经验分享
本文分享了如何通过 jlink 和 jdeps 工具将 Java 基础 Docker 镜像从 674MB 优化至 58MB 的经验。首先介绍了选择合适的基础镜像的重要性,然后详细讲解了使用 jlink 构建自定义 JRE 镜像的方法,并通过 jdeps 自动化模块依赖分析,最终实现了镜像的大幅缩减。此外,文章还提供了实用的 .dockerignore 文件技巧和选择安全、兼容的基础镜像的建议,帮助开发者提升镜像优化的效果。
|
3月前
|
存储 安全 Docker
Docker 的实战应用与优化策略
Docker 的实战应用与优化策略
54 0
|
3月前
|
存储 缓存 Java
Java应用瘦身记:Docker镜像从674MB优化至58MB的实践指南
【10月更文挑战第22天】 在容器化时代,Docker镜像的大小直接影响到应用的部署速度和运行效率。一个轻量级的Docker镜像可以减少存储成本、加快启动时间,并提高资源利用率。本文将分享如何将一个Java基础Docker镜像从674MB缩减到58MB的实践经验。
192 1
|
4月前
|
存储 Ubuntu JavaScript
如何使用Docker优化你的开发环境配置
如何使用Docker优化你的开发环境配置
|
4月前
|
开发者 Docker 微服务
利用Docker Compose优化微服务架构
在微服务架构中,Docker Compose提供了一种简便有效的方法来定义和运行多容器Docker应用程序,通过YAML文件配置服务、网络和卷,实现一键创建和启动。这不仅确保了开发、测试和生产环境的一致性,还简化了团队协作和维护工作,大幅提升了开发效率。本文将详细介绍Doker Compose的核心优势、基本使用方法及高级功能,帮助你更好地管理和优化微服务架构。
|
4月前
|
Docker 容器
利用Docker Compose优化开发环境的配置
在现代软件开发中,环境一致性至关重要。开发人员常需在不同机器间复制环境配置,而Docker Compose提供了一种简便有效的方法来定义和运行多容器Docker应用程序,确保开发、测试和生产环境一致,简化团队协作,提高开发效率。通过YAML文件配置服务、网络和卷,使用简单命令即可启动和停止服务。本文将介绍Docker Compose的核心优势、基本使用方法及高级功能,帮助你更好地管理和优化开发环境。
|
5月前
|
Unix Shell Linux
5-15|Docker报错OCI runtime exec failed: exec failed: unable to start container process: exec: “/bin/ba
5-15|Docker报错OCI runtime exec failed: exec failed: unable to start container process: exec: “/bin/ba
|
6月前
|
JavaScript jenkins 持续交付
自动化部署与持续集成:使用Jenkins和Docker优化开发流程
【8月更文挑战第31天】在软件开发的世界里,时间就是一切。本文将引导你通过Jenkins和Docker的强大组合,实现自动化部署和持续集成,让你的开发流程如丝般顺滑。我们将从基础设置开始,逐步深入到构建管道,最终实现一键部署的梦想。准备好让你的开发效率飞跃,一起探索这个令人兴奋的旅程吧!