什么是Docker多架构容器镜像

news/2025/2/18 23:43:58/

什么是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


http://www.ppmy.cn/news/1572433.html

相关文章

降本增效 - VGF 构建轻量高性能日志管理平台

VFG 技术架构 Filebeat 接收Syslog ,并进行日志分段,VictoriaLogs 持久化存储日志 ,Grafana 可视化、数据查询、告警、数据导出。 为什么要用VictoriaLogs ? 与Elasticsearch /Grafana Loki相比几十倍的CPU/内存/存储资源占用的…

Win10环境借助DockerDesktop部署最新MySQL9.2

Win10环境借助DockerDesktop部署最新MySQL9.2 前言 作为一杆主要撸Java的大数据平台开发攻城狮,必不可少要折腾各种组件,环境和版本一直是很头疼的事情。虽然可以借助Anaconda来托管Python的环境,也可以使用多个虚拟机来部署不同的环境&…

HTTP相关面试题

HTTP/1.1、HTTP/2、HTTP/3 演变 HTTP/1.1 相比 HTTP/1.0 提高了什么性能? HTTP/1.1 相⽐ HTTP/1.0 性能上的改进: 使⽤长连接的⽅式改善了 HTTP/1.0 短连接造成的性能开销。⽀持管道(pipeline)网络传输,只要第⼀个请…

车规MCU处理器选择Cortex-M7还是Cortex-R52?

车规mcu处理器选择Cortex-M7还是Cortex-R52?跟随小编从具体应用场景、安全等级(ASIL)、性能、成本进行分析吧。 01安全等级需求 ASIL-D(如刹车、转向)→ 必选R52。R52原生支持ASIL-D,硬件级错误检测&#…

【Docker 】虚悬镜像:深入理解与清理实践

文章目录 引言什么是虚悬镜像?虚悬镜像的影响如何识别虚悬镜像清理虚悬镜像1. 使用 docker image prune 命令2. 使用 docker system prune 命令3. 手动删除虚悬镜像 预防虚悬镜像的产生结语 引言 在 Docker 的日常使用中,镜像管理是一个非常重要的环节。…

本地部署【LLM-deepseek】大模型 ollama+deepseek/conda(python)+openwebui/docker+openwebui

通过ollama本地部署deepseek 总共两步 1.模型部署 2.[web页面] 参考官网 ollama:模型部署 https://ollama.com/ open-webui:web页面 https://github.com/open-webui/open-webui 设备参考 Mac M 芯片 windows未知 蒸馏模型版本:deepseek-r1:14b 运行情况macminim2 24256 本地…

uniapp - iconfont下载本地并且运用至项目上

1、项目中创建一个文件夹放置iconfont相关文件,例如src/assets/iconfont(名称自己定义) 2、在iconfont下载项目至本地 3、解压后把文件复制进1的文件夹中 4、修改src/assets/iconfont - iconfont.css里的font-face的src地址,修…

8、《5分钟构建RESTful API:Spring Boot Web开发入门》

5分钟构建RESTful API:Spring Boot Web开发入门 一、RESTful API核心认知 REST(Representational State Transfer)通过HTTP协议实现资源操作,其核心特征包括: 资源以URI标识(/api/users)通过…