当前位置: 首页 > news >正文

什么是Docker多架构容器镜像

什么是Docker多架构容器镜像

在 Docker 中,同一个 Docker 镜像可以在不同的平台上运行,例如在 x86、ARM、PowerPC 等不同的 CPU 架构上。

为了支持这种多平台的镜像构建和管理,Docker 在 17.06 版本时引入了 Manifest 的概念,在此之前,Docker 并没有原生支持多平台镜像的构建和管理,因此开发者需要手动构建和管理不同平台的镜像。

多架构镜像实际上是多个镜像的集合,

多架构镜像 = 多个单架构镜像的集合
├── amd64 架构镜像
├── arm64 架构镜像
├── s390x 架构镜像
└── ppc64le 架构镜像

镜像存储

  • 每个架构版本独立存储
  • 共享镜像标签
  • 运行时自动选择

拉取机制, 使用多架构镜像,会自动识别当前环境架构。

# 自动匹配架构
docker pull myimage:latest

技术实现

  • Manifest List 机制
  • 每个架构对应独立镜像
  • 统一镜像名称管理

构建示例

A. 手动构建多架构镜像

# 构建多架构镜像
docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -t myimage:latest \
  --push .

B. Dockerfile 多阶段构建

FROM --platform=$TARGETPLATFORM ubuntu:latest

# 根据目标平台动态处理
RUN if [ "$TARGETARCH" = "amd64" ]; then \
      echo "x86 specific setup"; \
    elif [ "$TARGETARCH" = "arm64" ]; then \
      echo "ARM specific setup"; \
    fi

如何判断是不是多架构镜像

docker manifest inspect 命令默认查看远端镜像的架构信息。

docker manifest inspect registry.access.redhat.com/ubi9 | grep architecture

            "architecture": "amd64",
            "architecture": "arm64",
            "architecture": "s390x",
            "architecture": "ppc64le",

manifest inspect 查询远端,image inspect 查询本地。

# 先拉取镜像
docker pull registry.access.redhat.com/ubi9

# 再查看本地镜像架构
docker image inspect registry.access.redhat.com/ubi9 | grep Architecture

本地也可以运行容器查看

# 查看本机架构
uname -m

# 运行时检查
docker run --rm registry.access.redhat.com/ubi9 arch

除了使用命令行查看,也可以通过访问 hub.docker.com 远程镜像仓库来查看构建的多架构镜像信息

get-cpu-os-v4-multi-github

相关文章:

  • 云原生作业五
  • Python排序算法详解
  • 一键高清修复、智能剪辑,媒体处理还能多智能?
  • 什么是网关?网关有什么作用?API网关的主要功能,SpringCloud可以选择有哪些API网关?什么是限流算法?网关如何实现限流?一篇文章读懂网关的前世今生
  • 国产网络变压器有哪些品牌比较好
  • Record-Mode 备案免关站插件,让 WordPress 备案不影响 SEO 和收录
  • 网络安全-防御 第一次作业(由于防火墙只成功启动了一次未补截图)
  • redis之lua实现原理
  • 07:串口通信(二):收发数据包
  • Docker Desktop之Nginx
  • HTTP的状态码
  • 海思3559a_使用2.0.4.0版SDK编译固件下载后i2c_write和i2c_read不支持怎么办
  • OpenCV机器学习(4)k-近邻算法(k-Nearest Neighbors, KNN)cv::ml::KNearest类
  • 蓝桥杯(B组)-每日一题(求最大公约数最小公倍数)
  • MongoDB 7 分片副本集升级方案详解(下)
  • 用Echarts的柱状图实现圆柱体效果
  • linux c 读写锁pthread_rwlock
  • 3D打印技术:如何让古老文物重获新生?
  • MYSQL直接在SQL提取json字符串中的内容-----将13位时间戳转换成标准的日期格式【记录SQL常用函数】
  • 【如何掌握CSP-J 信奥赛中的模拟算法】
  • 持续推动深入贯彻中央八项规定精神学习教育走深走实!上海市委党建工作领导小组会议举行
  • 外汇局:4月下旬外资投资境内股票转为净买入
  • 520、521婚登预约迎高峰?上海民政:将增派力量,新人可现场办理
  • 十大券商看后市|A股指数有望进一步缓步推高,淡化短期波动
  • 泽连斯基与美国副总统及国务卿会谈,讨论伊斯坦布尔谈判等问题
  • 官方数据显示:我国心血管疾病患者已超3亿人