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架构系统中,不支持 . 或者一些指令开头的文件命令。

相关推荐
g***B73825 分钟前
Java 工程复杂性的真正来源:从语言设计到现代架构的全链路解析
java·人工智能·架构
西陵5 小时前
为什么说 AI 赋能前端开发,已经不是选择题,而是必然趋势?
前端·架构·ai编程
古城小栈5 小时前
Docker 多阶段构建:Go_Java 镜像瘦身运动
java·docker·golang
国科安芯6 小时前
AS32S601型MCU芯片电源管理(PMU)模块详解
单片机·嵌入式硬件·性能优化·架构·risc-v
切糕师学AI6 小时前
ARM 架构中的 CONTROL 寄存器
arm开发·硬件架构·嵌入式·芯片·寄存器
六行神算API-天璇6 小时前
架构思考:大模型作为医疗科研的“智能中间件”
人工智能·中间件·架构·数据挖掘·ar
济南壹软网络科技有限公司7 小时前
企业级盲盒系统:Java高并发架构在多元化抽奖电商中的设计与实践
java·架构·开源源码·盲盒源码·盲盒h5·盲盒app
鹏说大数据9 小时前
数据治理项目实战系列6-数据治理架构设计实战,流程 + 工具双架构拆解
大数据·数据库·架构
一水鉴天9 小时前
整体设计 定稿 之26 重构和改造现有程序结构 之2 (codebuddy)
开发语言·人工智能·重构·架构
隐语SecretFlow9 小时前
【隐语Secreflow】如何配置 Kuscia 对请求进行 Path Rewrit
架构·开源