docker打包多架构镜像(manifest)

news2025/1/17 21:36:48

在docker仓库上,经常能看到这样的镜像

在这里插入图片描述

在一个”镜像“中,包含了三个架构的镜像

本质上,外部看到的这个镜像,其实不算是一个镜像,应该称它为镜像清单列表(manifest list)

manifest是一个文件,其中包含了镜像的基本信息,例如架构,大小等。

通过这个文件,可以找到对应具体的镜像

对于docker客户端而言,可以将这个文件当成镜像来使用,例如docker pull,docker run

通过将多个镜像的清单文件,汇总成一个清单列表,为每个清单文件标注上对应架构

可以实现docker多架构打包,这样不同的系统架构,也可以使用同一个镜像,就不用再给镜像每个镜像的版本后面拼接 -arm64 或者 -amd64

docker manifest有三个常用的命令create、annotate、push

注意:在使用manifest之前,必须保证目标镜像已经在仓库中存在,本地刚使用docker build或者docker tag新创建的镜像,比如要先push到仓库后才能使用docker manifest命令

重要:harbor1.X版本不支持多系统架构manifest,harbor2.X版本支持多系统架构manifest

下面演示打包多架构镜像

示例镜像:centos:7.6.1810

下面内容出现的 [harbor host] 需要替换为你自己的harbor仓库地址

由于没有arm架构的机器,这里直接用tag,创建两个不同的镜像,模拟演示

将两个不同架构的镜像,打包为一个镜像

centos:7.6.1810-arm、centos:7.6.1810-amd =》 centos:7.6.1810

docker tag centos:7.6.1810 [harbor host]/sample/centos:7.6.1810-arm
docker tag centos:7.6.1810 [harbor host]/sample/centos:7.6.1810-amd

docker push [harbor host]/sample/centos:7.6.1810-arm
docker push [harbor host]/sample/centos:7.6.1810-amd

创建清单,将两个镜像并入一个清单列表中

docker manifest create --insecure [harbor host]/sample/centos:7.6.1810 [harbor host]/sample/centos:7.6.1810-arm [harbor host]/sample/centos:7.6.1810-amd

在这里插入图片描述

再为每个镜像,标注架构

docker manifest annotate [harbor host]/sample/centos:7.6.1810 [harbor host]/sample/centos:7.6.1810-arm --os linux --arch arm64
docker manifest annotate [harbor host]/sample/centos:7.6.1810 [harbor host]/sample/centos:7.6.1810-amd --os linux --arch amd64

最后将清单推送到仓库,就可以进行pull操作了

 docker manifest push --insecure [harbor host]/sample/centos:7.6.1810

pull操作

docker pull [harbor host]/sample/centos:7.6.1810

在执行pull操作时,客户端会自动将当前的架构发送给服务端,服务端则会响应对应架构的镜像

docker daemon.json配置

{
  "insecure-registries": ["[harbor host]"],
  "experimental": true
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23807.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过面积证明:两个函数相乘 / 相除的导数为什么长成这样?

参考视频 MIT 微积分课程 两个函数相乘的导数 (f(x)g(x))′f′(x)g(x)g′(x)f(x)(f(x)g(x))^{}f^{}(x)g(x)g^{}(x)f(x)(f(x)g(x))′f′(x)g(x)g′(x)f(x) 这是我们都非常熟悉的公式,熟悉到根本不知道是咋推出来的其实推导这个公式有两种方法,一种就是靠…

微服务平滑迁移上云最佳实践

作者:草谷 背景 许多企业在做微服务架构改造的时候,在自建还是上云的选择上难以决策,选择上云后,在微服务上云过程中,如何能够做到不影响业务情况下平滑迁移呢,通过阅读本文,你可以快速获得以…

树之基本概念(有图头真相)

文章目录树的概念及结构1.树的概念2.树的相关概念3.树的表示4.树在实际中的应用树的概念及结构 1.树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#…

高项 干系人管理论文

4个过程: 1,识别干系人:识别能影响项目决策、活动或结果的个人、群体或组织,以及被项目、活动或者结果影响的个人、群体或者组织,并分析和记录他们的相关信息的过程。这些信息包括他们的利益、参与度、互相依赖、影响…

PDF怎么编辑文字?教你两招非常实用的方法

怎么在PDF文件上直接编辑文字呢?相信这是大家在刚接触PDF文件不久时发出的疑问。在发现文件中有需要改正的地方,想要编辑时发现编辑不了,出现这种情况时应该怎么办呢?今天教大家两种非常简单实用的方法,有需要的小伙伴…

《元宇宙工程》南京首发 落地实用是关键

2022年11月20日上午,由江苏省人工智能学会、南京信息工程大学人工智能学院(未来技术学院)、中国移动通信联合会元宇宙产业工作委员会联合主办,由南京信息工程大学元宇宙研究院、江苏省人工智能学会元宇宙专委会(筹&…

PMP考前最后2天思路整理

1 问题解决的思路,先分析,再行动。要直接、要直面。要有担当,要有作为,敢负责任。 2 风险管理里面的三个文件一定要分清楚:风险管理计划、风险登记册和风险报告。风险应对的五种方法每个是什么。各自在书里面举的例子…

NAND闪存改变了现代生活

1989年 我出生了, 额,扯远了。 1989年NAND闪存面世了,它曾经且正在改变了我们的日常生活。 NAND 闪存发明之所以伟大,是因为,有了这项颠覆性的发明,才有了我们现如今用的智能手机的高速大容量内存(eMMC、UF…

react-window构造的虚拟列表使用react-resizable动态调整宽度和使用react-drag-listview拖拽变换列位置的问题

文章目录react-window构造的虚拟列表使用react-resizable动态调整宽度和使用react-drag-listview拖拽变换列位置的问题需求问题问题根源部分代码参考react-window构造的虚拟列表使用react-resizable动态调整宽度和使用react-drag-listview拖拽变换列位置的问题 需求 项目中使…

java项目-第154期ssm足球赛会管理系统-ssm毕业设计_计算机毕业设计

java项目-第154期ssm足球赛会管理系统-ssm毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm足球赛会管理系统》 该项目分为2个角色,管理员、用户。 用户可以浏览前台,包含功能有: 首页、球队介绍、球星介绍、线下足球、赛论坛信…

Revit中项目的正负零零,尺寸标注,标注生成问题

一、 Revit中如何改变项目的正负零零 有时候,在一个项目中,我们要改变项目的 正负零零,如下图 第一步,打开视图的“可见性/图形”,如图2 第二步,在“可见性/图形替换”中勾选“项目基点”,如图 …

TK爆品剖析 水晶首饰降临节日历持续火爆TikTok,独立站卖到断货

圣诞节是年末促销旺季的关键节点,很多商家都会推出圣诞主题礼物产品,比如圣诞树、圣诞贺卡、圣诞老人等等,但很少会推出降临节日历。 其实,“降临节日历”一直是人们在圣诞节前最喜欢的礼物。谷歌趋势显示,2021年圣诞节…

[Spring Cloud] Ribbon介绍与定义负载均衡

✨✨个人主页:沫洺的主页 📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专…

QXlsx 使用

QXls使用分两种方式: 1 直接加载pri文件,就可以使用;2 编译后作为Qt的模块加载使用; 此文章主要针对第二种使用方式做记录,该方式又分为两种编译器进行说明: 第一种,使用MinGW64位编译器&…

nginx部署web项目(跟着搞不出来,来砍我)

前端打包成dist,详情可以参考我的vue博客 vue速学_我要用代码向我喜欢的女孩表白的博客-CSDN博客 nginx下载地址:nginx1.16.1离线安装包_nginx1.16.1依赖-Web服务器文档类资源-CSDN下载 (如果报错缺少依赖,可以参考我的nginx-rtmp直播流博客…

文献阅读01_基于深度学习的个性化新闻推荐方法研究_20221114

论文信息 Subjects:新闻推荐;长短期用户表示;多视角学习;联合学习; (1)题目:Attention Is All You Need (你需要的就是关注) (2)文章下载地址:https://kreader.cnki.net/Kreader/Ca…

行业安全解决方案|腾讯打造汽车一体化安全防护,助力车企数字化安全

随着汽车智能化的发展,车联网、自动驾驶、车路协同等应用快速落地,汽车作为智能终端所产生的数据成指数级增长态势。然而,当汽车行业数字化转型正如火如荼进行时,新的安全挑战也接踵而至,车企甚至可能因忽视安全建设&a…

(八)centos7案例实战——docker仓库Harbor服务安装部署

前言 Harbor (港口,港湾)是一个用于存储和分发Docker镜像的企业级Registry服务器。我们可以使用dockerhub仓库或者阿里云docker仓库等第三方仓库管理我们的docker镜像。对于企业来说,条件允许,可以搭建自己的docker镜…

FEDformer 代码分析(1)

参数设置如下, --seq_len 是 96 --label_len 是 48 --pred_len 是 96 也就是说,输入是96的,预测96. batch_x 是 (1,96,7)的维度的。 batch_x_mark 是(1,96,4)的维度的。 batch_y的维度是…

嵌入式系统开发笔记107:层次化软件设计思想

文章目录前言一、嵌入式系统设计的本质二、基于寄存器结构的程序设计三、嵌入式系统优良程序的评判标准四、计算机上的软件分层五、嵌入式程序的分层设计前言 本文以思维导图的形式介绍层次化软件设计思想。 一、嵌入式系统设计的本质 二、基于寄存器结构的程序设计 三、嵌入式…