无需下载镜像即可完成标记,2个简单调用轻松帮您提升效率!
出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五,与您不见不散!
在研究多个镜像的层合并时,我意识到Docker Registry API 也可以用来标记镜像,不需要上传或下载整个镜像。接下来,让我们简单了解一下它的原理。
了解 Docker Registry API
Docker镜像由一个或多个层组成。每个层都是由Dockerfile中的命令创建的。根据规则,每个语句都会向镜像添加其他的层。
从 Docker Registry API 的角度来看,一个镜像包含三种类型的数据:
- 层由 blobs 表示;
- 来自 Dockerfile 和创建层的命令也会记录在这些存储着 blobs 的镜像配置中;
- 镜像清单引用所有层的 blob 以及镜像配置;
在 Docker Registry 的命名中,镜像仓库存储着具有相同名称但不同标签的所有镜像的层和镜像配置(例如:“docker:18.06”和“docker:stable-dind”来自同一个镜像仓库,但“library/ docker-dev”中的所有镜像都位于第二个镜像仓库中)。请注意,镜像仓库中的镜像可能存在较大的差异(例如:“docker:18.06”和“docker:stable-dind”)。
只有镜像清单存储在标记名称下。它用了层的 blob 以及镜像配置。因此,下载一个标记的镜像清单,然后将其上传到另一个标记中,其效果与运行 docker pull 后紧随着 docker标记后紧跟着 docker push 相同。使用 API 的优点是无需下载镜像。镜像清单只有几千字节。因此,使用标记这种方法可以大大地提升效率。
使用curl进行远程标记
使用curl远程标签时,可以通过以下两个调用来实现:
#!/bin/bash REGISTRY_NAME="http://localhost:5000" REPOSITORY=rd/dind TAG_OLD=25 TAG_NEW=stable CONTENT_TYPE="application/vnd.docker.distribution.manifest.v2+json" MANIFEST=$(curl -H "Accept: ${CONTENT_TYPE}" "${REGISTRY_NAME}/v2/${REPOSITORY}/manifests/${TAG_OLD}") curl -X PUT -H "Content-Type: ${CONTENT_TYPE}" -d "${MANIFEST}" "${REGISTRY_NAME}/v2/${REPOSITORY}/manifests/${TAG_NEW}"
请注意,上述解决方案不实现任何类型的身份验证。对于基本身份验证,添加 -u “:”并首先为 Docker Hub 申请获取令牌,然后添加-H“Authorization:Bearer”。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
小程序云应用入门实操系列课程第二讲 - 云应用的控制介绍
摘要 云应用是面向小程序应用场景,为开发者提供的⼀键构建后端应用运行环境、后端服务部署、运维监控等能力的⼀站式小程序部署服务。本次课程主要围绕小程序云应用控制台的操作,介绍测试环境与生成环境下的具体操作。 演讲嘉宾简介 白宦成 - Linux 中国开发组组长,阿里云 MVP;CSDN 专家,在 GitChat 平台上开设了《一学就会的 WordPress 实战课》达人课;自由职业者,曾就职于网易杭州研究院。 个人小程序作品: 运维密码小程序:2017年2月上线配色助手小程序:2018年4月上线Linux 小程序:2019年2月上线。 个人授课: 极客学院《微信小程序入门实战(仿 V2EX)》极客学院《微信小程序进阶实战之分答应用开发》网易云课堂《微信小程序初级工程师微专业》 系列课程大纲 云应用的价值 云应用的控制介绍 云应用的使用一:Node.js初
- 下一篇
【资料下载】阿里云容器服务的优势和调优
主题介绍: 1、阿里云容器服务的黑科技2、阿里云新建集群优化方案3、从容器服务的发展看阿里巴巴的云原生 直播专家: 云栖社区特邀专家:郭旭东曾任高级研发和运维开发工程师,阿里云MVP,现任凯京科技研发中心架构&运维部运维负责人,负责公司运维团队建设。 直播时间: 4月26日 19:30 ppt精彩一览: 下载地址:https://yq.aliyun.com/download/3540 进群观看回放:
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块
- CentOS8编译安装MySQL8.0.19
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker安装Oracle12C,快速搭建Oracle学习环境