X86、ARM架构镜像

1. 简介

ARM 镜像和 x86 镜像是为不同处理器架构设计的软件镜像。ARM(Advanced RISC Machine)架构和 x86 架构是两种主流的处理器指令集架构,它们在设计和性能特点上有所不同。以下是 ARM 镜像和 x86 镜像的一些主要区别:

  1. 处理器架构

    1. ARM 镜像:专为 ARM 处理器设计,这些处理器通常用于移动设备、嵌入式系统和一些服务器。ARM 架构以其低功耗和高效能而闻名。

    2. x86 镜像:为 x86 处理器设计,这些处理器广泛应用于个人电脑和服务器。x86 架构包括 Intel 和 AMD 的处理器。

  2. 操作系统支持

    1. 操作系统发行版通常会提供针对 ARM 和 x86 的不同版本。例如,Ubuntu、Debian 和 Fedora 都提供了 ARM 和 x86 版本的镜像。
  3. 软件兼容性

    1. 软件通常需要为不同的架构编译。因此,为 ARM 架构编译的软件可能无法在 x86 系统上运行,反之亦然。不过,有一些技术(如虚拟化和容器化)可以在一定程度上桥接这种差异。
  4. 性能和功耗

    1. ARM 处理器通常在低功耗下提供良好的性能,适合电池供电的设备。

    2. x86 处理器提供广泛的性能范围,从低功耗的 Atom 处理器到高性能的 Core i9 处理器。

  5. 生态系统

    1. x86 架构拥有更成熟的生态系统,特别是在桌面和服务器市场。

    2. ARM 架构在移动和嵌入式市场拥有强大的生态系统,并且正在逐渐扩展到服务器和数据中心市场。

  6. 开发和部署

    1. 开发人员可能需要为不同的架构准备不同的构建环境。

    2. 在部署应用程序时,需要确保选择的镜像与目标硬件架构兼容。

  7. Docker 镜像

    1. Docker 镜像可以为不同的架构标记不同的标签。例如,ubuntu:latest 通常指的是 x86 架构的镜像,而 arm64v8/ubuntu:latest 指的是 ARM 架构的镜像。

2. 拉取arm镜像

docker版本必须在19以上

1. Docker 配置

修改$HOME/.docker/config.json文件,加入如下配置开启:

bash 复制代码
vim  /root/.docker/config.json
{
        "auth" : {},
        "experimental": "enabled"
} 

启用

bash 复制代码
vim /etc/docker/daemon.json
{  
        "experimental": true
}

重启docker

bash 复制代码
systemctl daemon-reload
systemctl restart docker

2. 安装并设置了 QEMU 用户态二进制格式解释器

bash 复制代码
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

3. 拉取镜像

在dockerhub中搜索镜像,查看详情

  • ARCH是表示架构

查看到有arm架构的镜像,在服务器中拉取

bash 复制代码
docker pull --platform=arm64 redis:latest

3. 应用程序打包

  • Dockerfile文件修改:FROM openjdk:11.0.14.1-jdk-buster改为
bash 复制代码
FROM --platform=arm64 openjdk:11.0.14.1-jdk-buster
  • build命令修改:末尾加上--platform=linux/arm64
bash 复制代码
docker build -t "$(generate_image_id "$VERSION-$COMMIT")" . -f Dockerfile 
--platform=linux/arm64
  • 正常打包push

注:在arm架构系统中,不支持 . 或者一些指令开头的文件命令。

相关推荐
冰封之寂9 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
9523611 小时前
Docker - 基础
运维·后端·docker·容器
Code_Ignis11 小时前
docker国内可用源(持续维护)
运维·docker·容器
童谣111 小时前
越华环保集团市级统筹申报数字化中台:政策校验与减排仿真一体化架构
数据库·架构
2601_9567436814 小时前
上海小程序开发公司技术路径全解:从架构选型到工程落地的核心判断
小程序·架构·开发经验·上海
JAVA面经实录91714 小时前
图解23种设计模式完整知识体系(Java后端面试完整版)
java·架构
AI_小站14 小时前
Loop Engineering又是啥?一文讲清企业Agent落地的四层工程进化论
java·人工智能·架构·prompt·大模型开发·智能体·大模型应用
l1t15 小时前
DeepSeek总结的DuckLake 架构深度剖析-2
数据库·架构
2601_9625029015 小时前
双工位蜡镶机控制系统工程实践:并行架构、视觉对齐与实时同步避坑指南
架构
论迹复利15 小时前
多平台移植 BTBLE Stack 的思路与踩坑实战——从 Ceva IP 到厂商适配层的迁移指南
嵌入式硬件·物联网·架构