多架构镜像三部曲(一)组合


大家好,我是温玉。今天给大家分享的内容是 “多架构镜像构建” 专题,希望给有在不同架构平台上交付应用需求的同学提供一些帮助。

多架构镜像(multi-architecture)

在企业实际业务容器化过程中会遇到同一个服务构建的镜像需要运行在不同的 CPU 架构服务器上,比较常遇到的是 ARM 架构(如 arm64/v8)和 X86 架构(amd64)。对于一个服务组件构建两个及以上的镜像 TAG 是非常不便于管理的,这这种情况下使用多架构镜像是非常不错的选择。

多架构镜像允许某个服务镜像使用一个名称关联多个不同架构功能相同的镜像。即一个镜像 TAG 中可以同时包含不同 CPU 架构、操作系统信息。在实际 docker pull 时,docker 能够自动根据当前运行的机器环境下载相关的镜像 Overlay 等数据。

在 Docker 中的镜像是由 overlay 层、大小和摘要等信息组成,这些信息统称为清单(manifest),即一个镜像的完整说明。而多架构镜像是同一个服务不同环境下的 overlay 层、大小和摘要组合而成,因此多架构镜像也称为清单列表(manifest lists)。

一般情况下 Docker 提供多架构镜像的管理方法有两种 docker manifestdocker buildx ,本次主要讨论 docker manifest 方法。

示例提供一种场景,将 redis 的 arm64 和 amd64 镜像同步到私有镜像仓库。

准备不同架构的镜像

在下载镜像时,默认 docker 会根据当前的操作系统来自动判断下载什么架构的镜像。但,本次想下载多个架构的镜像就需要使用到 docker pull --platform 命令和参数。

由于同一个镜像 TAG 在不是多架构镜像时,是不能同时保存多架构镜像相关信息的,因此在下载一个架构的镜像后,需要修改他的 TAG 便于下载其他架构的镜像。

下载 arm64 架构的 redis 镜像,并修改 tag

# docker  pull --platform arm64 redis:6.2.6
# docker tag redis:6.2.6 harbor.cncfstack.com/library/redis:6.2.6-arm64
  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值