首页 > 其他分享 >如何保存/同步多架构容器 Docker 镜像

如何保存/同步多架构容器 Docker 镜像

时间:2022-11-28 11:04:48浏览次数:64  
标签:5000 架构 manifest 2.23 rancher 镜像 Docker docker

前言

随着容器、芯片技术的进一步发展,以及绿色、节能、信创等方面的要求,多 CPU 架构的场景越来越常见。典型的应用场景包括:

  1. 信创:x86 服务器 + 鲲鹏 ARM 等信创服务器;
  2. 个人电脑:苹果 Mac M1 + Windows 电脑(或旧的 Intel 芯片苹果电脑);
  3. Edge:数据中心使用 x86 服务器,边缘 Edge 端使用低功耗的 arm 边缘设备(如树莓派等)。

容器云原生技术在这方面支持的是很好,但是实际使用中细节会有一些问题,举一个例子,就是:如何保存/同步多架构容器 Docker 镜像

本次先以将 Docker Hub 的镜像同步到本地镜像仓库为例说明。

词汇表

英文 中文 说明
multi-arch image 多架构镜像
variant 变体 不同变体指的如:redis 镜像的 arm/v5arm/v7 两种变体
manifest 清单
manifest-list 清单(的)列表
layer (镜像)层
image index 镜像索引 OCI 专有名词,含义和 manifest-list 相同
manifest digest 清单摘要

容器镜像如何支持多架构

一个多架构镜像(A multi-arch image)是一种容器镜像,它可以组合不同架构体系(如 amd64 和 arm)的变体(variants),有时还可以组合不同操作系统(如 windows 和 linux)的变体。运行支持多架构的镜像时,容器客户端会自动选择与你的 OS 和架构相匹配的镜像变体。

多架构镜像是基于镜像清单和清单列表实现的。

清单(Manifests)

每个容器镜像都由一个“清单”表示。清单是一个 JSON 文件,用于唯一标识镜像,并引用其层(layer)及其相应的大小。

hello-world Linux 镜像的基本清单类似于以下内容:

{
  "schemaVersion": 2,
  "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
  "config": {
      "mediaType": "application/vnd.docker.container.image.v1+json",
      "size": 1510,
      "digest": "sha256:fbf289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e"
    },
  "layers": [
      {
        "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
        "size": 977,
        "digest": "sha256:2c930d010525941c1d56ec53b97bd057a67ae1865eebf042686d2a2d18271ced"
      }
    ]
}

清单列表 (Manifest-lists)

多架构镜像的清单列表(通常称为 OCI 镜像 的镜像索引)是镜像的集合(索引),您可以通过指定一个或多个镜像名称来创建一个。它包括有关每个镜像的详细信息,例如支持的操作系统和体系架构、大小和清单摘要 (manifest digest)。清单列表的使用方式与 docker pulldocker run 命令 中的镜像名称相同。

docker CLI 使用 docker manifest命令管理清单和清单列表。

标签:5000,架构,manifest,2.23,rancher,镜像,Docker,docker
From: https://blog.51cto.com/u_15875298/5890717

相关文章

  • 如何保存/同步多架构容器 Docker 镜像
    前言随着容器、芯片技术的进一步发展,以及绿色、节能、信创等方面的要求,多CPU架构的场景越来越常见。典型的应用场景包括:信创:x86服务器+鲲鹏ARM等信创服务器;个人......
  • 系统架构图-互联网
    01-互联网-通用大数据平台-系统架构图  02-互联网-通用大数据中台-系统架构图  03-互联网通用架构-系统架构图  04-互联网通用架构-系统架构图  0......
  • 系统功能架构图
    首先明确应用架构的定义,从百度百科上即可了解到何为应用架构:应用架构(ApplicationArchitecture)是描述了IT系统功能和技术实现的内容。应用架构分为以下两个不同的层次:......
  • 这 4 个超实用的 Docker 镜像构建技巧!你不会不知道吧?
    最近做了一个好玩的工具,叫 xbin.io。其中有一项工作是为不同的工具来构建Docker镜像,让他们都运行在Docker中(实际上,是兼容Dockerimage的其他 sandbox系统,没有直......
  • java技术架构图
    架构图有哪几种  业务架构:需求初期业务的结果和过程描述一般比较模糊,可能来自于某个老板、运营或用户的反馈。客户说海尔洗衣机洗土豆会堵,海尔立马设计专门的土豆洗......
  • 第2-4-7章 docker安装WorkBench-规则引擎Drools-业务规则管理系统-组件化-中台
    目录8.WorkBench8.1WorkBench简介8.2安装方式8.2.1传统方式安装8.2.2docker安装droolsworkbench8.3使用方式8.3.1创建空间、项目8.3.2创建数据对象8.3.3创建DRL......
  • Docker 工作原理分析
    docker容器原理分析docker的工作方式Namespace容器对比虚拟机Cgroups容器看到的文件MountnamespacechrootrootfsVolume(数据卷)打包一个go镜像总......
  • 三. docker-compose 简介、基本命令及示例-1
    docker-compose使用简介、基于docker-compsoe实现Nginx+Java+Mysql服务部署docker-compose简介docker-compose项目是Docker官方的开源项目,负责实现对单机容器的快速编排,d......
  • linux中使用docker创建nginx容器镜像并部署静态网站项目
      1,先进入服务器root目录,然后创建nginx对应该的配置文件目录/日志目录/静态文件目录等,后面创建nginx容器时要把目录一一挂载上cdroot/mkdirnginxcdnginxmkdir......
  • 这就是搜索引擎(1) 搜索引擎的技术架构
    0.前言本系列文章主要是源于对《搜索引擎的技术架构》一书的读书笔记,其中会掺杂在其他文章或书籍的内容以及我个人对搜索引擎的理解,阅读顺序也没有按照书中目录的顺序来......