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

docker运行arm64架构的镜像、不同平台镜像构建

背景

Docker 允许开发者将应用及其依赖打包成一个轻量级、可移植的容器,实现“一次构建,到处运行”的目标。然而,不同的操作系统和硬件架构对容器镜像有不同的要求。例如,Linux 和 Windows 系统有不同的文件系统和系统调用,而 x86_64(amd64)和 ARM64 架构则有不同的指令集。

Docker 从 18.09 版本开始支持多平台镜像构建。--platform参数允许用户指定构建过程应该生成的目标操作系统和架构。例如,--platform=linux/amd64指定生成一个在 64 位 Linux 操作系统上运行的镜像

--platform参数简介
Docker 从 18.09 版本开始支持多平台镜像构建。--platform参数允许用户指定构建过程应该生成的目标操作系统和架构。例如,--platform=linux/amd64指定生成一个在 64 位 Linux 操作系统上运行的镜像。

操作系统架构概览
在讨论--platform参数之前,我们需要了解一些常见的操作系统架构:

amd64:即 x86_64,是最常见的桌面和服务器 CPU 架构,广泛用于 Intel 和 AMD 的处理器,这个就是x86架构的。
arm64:ARM 架构的 64 位版本,常用于移动设备和一些高性能计算场景。
windows/amd64:指运行在 64 位 Windows 操作系统上的架构。

开启platform参数

docker默认没有开启 --platform 参数,需要手动开启

docker info | grep -i 'experimental'

修改daemon.json文件

{"experimental": true,"registry-mirrors": ["https://dockerpull.com"]
}

重启docker

systemctl daemon-reload
systemctl restart docker

修改完成后,重启 docker 来验证

安装 qemu 多平台支持

下载多架构支持的包,注意选对目标架构
qemu-aarch64-static 是arm-arch64架构的包

wget https://github.com/multiarch/qemu-user-static/releases/download/v5.1.0-5/qemu-aarch64-static.tar.gz

解压

tar xzvf qemu-aarch64-static.tar.gz

 配置可执行文件路径

sudo cp qemu-aarch64-static /usr/bin/

参考文章:

【Docker系列】跨平台 Docker 镜像构建:深入理解`--platform`参数_docker --platform-CSDN博客

x86 平台利用 qemu-user-static 实现 arm64 平台 docker 镜像的运行和构建_docker_chen2ha-云原生

【无标题】_qemu-aarch64-static 源码下载-CSDN博客 

http://www.lryc.cn/news/450466.html

相关文章:

  • vue基于Spring Boot框架的高校实验室预约管理系统
  • Linux中find命令详解
  • 无水印短视频素材下载网站有哪些?十个高清无水印视频素材网站分享
  • SpringBoot+Activiti7工作流入门实例
  • Azure OpenAI检索增强微调:使用 GPT-4o 对 GPT-4o mini 进行微调,以适应特定领域的应用
  • ISP Pipeline
  • < IDE编程环境配置>
  • Golang | Leetcode Golang题解之第448题找到所有数组中消失的数字
  • 【Spring Boot 入门三】Spring Boot与数据库集成 - 构建数据驱动的应用
  • Web 服务器与动态脚本语言通信的接口协议有哪些
  • ESXI识别服务器磁盘,虚拟机显示无效
  • 【C++】 vector 迭代器失效问题
  • 【Spring基础3】- Spring的入门程序
  • golang学习笔记22-面向对象(四):接口【重要】
  • SpringBoot技术栈:打造下一代网上租赁系统
  • Vue-Lecture1-Notes
  • 网上租赁系统开发:SpringBoot实践与应用
  • User-Agent在WebMagic爬虫中的重要性
  • 如何解决 Docker 下载 mcr.microsoft.com 镜像慢的办法
  • 网络编程,端口号,网络字节序,udp
  • Android入门
  • 二叉树深搜专题篇
  • 堆【数据结构C语言版】【 详解】
  • 初识React
  • VUE 开发——AJAX学习(三)
  • C++杂项
  • Gelatinous Cube Sphere - Bonus Files 2 - Atavism
  • 锐捷—NAT地址映射+IPsec隧道
  • index.html 调用 ajax
  • uniapp学习(003-1 vue3学习 Part.1)