首页 > 其他分享 >信创化浪潮下的ARM镜像构建指南

信创化浪潮下的ARM镜像构建指南

时间:2024-11-08 10:20:28浏览次数:1  
标签:创化 -- buildx arm 构建 镜像 docker ARM

前言:在当今科技蓬勃发展的浪潮中,有一股神秘的力量如同幕后的巨擘,强力推动着信创化的进程。这股力量恰似一只无形却力大无穷的巨手,其影响范围广泛,涵盖了从操作系统、形形色色的中间件、数据库,一直到容器平台等诸多领域。
伴随着技术架构的深刻变革,docker 镜像也迎来了关键的转型 —— 从 x86 (amd) 向 arm 架构转变,相关详情可参考下图。
需要特别注意的是,国产 XC 容器平台和主流的 k8s 容器平台相比,在功能按钮上存在一些细微的差异。在此,我精心编撰了一篇操作文档,详细阐述了在生产环境中 XC 容器平台从镜像构建开始,一直到将其推送进 XC 镜像仓库并成功运行的完整流程。然而,因当前存在诸多因素限制,这里暂时只能向大家展示构建 ARM 镜像包的操作步骤,无法将 XC 容器平台的所有操作内容毫无保留地呈现出来,期待后续有合适契机再为大家展示完整内容以供参考。

一、本文主要介绍了ARM架构Docker镜像构建相关操作,包括在ARM机器上安装Docker以及在不同场景下构建ARM版本镜像的方法,具体如下:

  1. ARM机器上安装Docker(以麒麟V10系统为例)
    • 查看系统信息:通过cat /proc/version确定系统基于ubuntu16.04(xenial)。
    • 添加软件源
      • 参考清华镜像站帮助文档,添加arm架构的清华镜像软件源到/etc/apt/sources.list文件。
      • 执行sudo apt-get install apt-transport-httpssudo apt-get cleansudo apt-get update命令。
    • 安装Docker
      • 卸载旧版本docker相关组件。
      • 安装apt-transport-httpsca-certificatescurlgnupg-agentsoftware-properties-common
      • 添加Docker官方GPG Key并确认添加成功。
      • 编辑/etc/apt/source.list,添加docker软件源(arm64 xenial)。
      • 执行sudo apt-get update,然后安装docker-cedocker-ce-clicontainerd.io,最后通过docker --version查看版本。
  2. ARM版本镜像构建(非ARM机器上执行,使用buildx交叉构建)
    • 启用试验性功能(仅支持docker19.03及以上版本)
      • 编辑/etc/docker/daemon.json,添加{"experimental": true}
      • 编辑~/.docker/config.json,添加"experimental": "enabled"
      • 执行sudo systemctl daemon-reloadsudo systemctl restart docker,通过docker version -f '{{.Server.Experimental}}'确认是否开启成功。
    • 创建buildx构建器
      • 使用docker buildx ls查看现有构建器。
      • 选择以下方式之一创建构建器:
        • 不指定参数创建:docker buildx create --use --name multiarch-builder
        • 若构建器无arm架构支持,明确指定要支持的构建类型:docker buildx create --platform linux/arm64,linux/arm/v7,linux/arm/v6 --name multiarch-builder
        • 若需在buildx访问私有registry,使用host模式并指定配置文件:docker buildx create --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 --driver-opt network=host --config=/Users/hanlyjiang/.docker/buildx-config.toml --use --name multiarch-builder(其中buildx-config.toml为配置文件,需按格式编写)。
    • 启用构建器:执行docker buildx inspect multiarch-builder --bootstrap初始化并激活构建器,然后使用docker buildx ls查看是否成功。
    • 修改Dockerfile
      • 确认基础镜像(FROM)是否有arm版本,无则寻找替代或自行编译。
      • 检查Dockerfile各步骤中是否有依赖CPU架构的内容,如有则替换为arm架构对应的内容(如软件下载地址中的amd64替换为aarch64等,需先确认有对应架构的归档包)。
    • 使用buildx构建arm64镜像:执行docker buildx build --platform=linux/arm64,linux/amd64 -t xxxx:tag. --push(指定多个架构时只能使用--push推送到远程仓库,推送成功后通过docker pull --platform拉取指定架构镜像)。
    • 检查构建成果
      • 通过docker buildx imagetools inspect查看镜像信息,确认是否有arm架构信息。
      • 在arm机器上实际运行镜像,确认运行正常(若运行时报exec format error类似错误,表示镜像中部分可执行文件架构不匹配)。
  3. 在x86上运行arm镜像(需安装qemu-user-static):执行docker run --rm --privileged multiarch/qemu-user-static --reset -p yes安装,之后可运行arm版本镜像,如docker run --rm -t arm64v8/fedora uname -m


标签:创化,--,buildx,arm,构建,镜像,docker,ARM
From: https://www.cnblogs.com/zhoutuo/p/18534581

相关文章

  • OpenHarmony4.1蓝牙芯片如何适配?触觉智能RK3568主板SBC3568演示
    当打开蓝牙后没有反应时,需要排查蓝牙节点是否对应、固件是否加载成功,本文介绍开源鸿蒙OpenHarmony4.1系统下适配蓝牙的方法,触觉智能SBC3568主板演示,搭载了瑞芯微RK3568芯片,应用可覆盖边缘计算、人工智能、工业HMI、工业网关、智慧医疗、自助终端、智能零售、能源电力等行业。修改......
  • 轻松掌握如何使用 Ventoy 创建多启动 USB 驱动器,并有效管理操作系统镜像文件。深入理
    Ventoy初级使用教程的大纲。Ventoy是一个非常实用的开源工具,能够让用户轻松地在USB驱动器上创建多启动(multi-boot)系统,支持多种操作系统镜像(ISO文件)的直接启动,而无需重新格式化或安装启动加载器。Ventoy初级使用教程大纲1.Ventoy简介什么是Ventoy?开源的多启动工......
  • npmmirror 镜像站
    ......
  • 鸿蒙开发进阶(HarmonyOS )Form Kit(卡片开发服务)概念
     鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)FormKi......
  • 鸿蒙开发进阶(HarmonyOS )通过 ArkTS 接口获取并访问公共目录
     鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)通过Ar......
  • 鸿蒙开发进阶(HarmonyOS )分布式文件系统
     鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)分布式......
  • 鸿蒙开发进阶(HarmonyOS )开发ArkTS卡片页面
     鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)开发者......
  • 鸿蒙开发进阶(HarmonyOS)相机管理(ArkTS)
     鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)在开发......
  • 鸿蒙开发进阶(HarmonyOS)使用通话设备切换组件
     鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)基本概......
  • 鸿蒙开发进阶(HarmonyOS)相机应用录像(ArkTS)
     鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)录像(Ar......