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

相关推荐
hsg772 小时前
基于nacos2.5.1的MCP服务端微服务项目开发环境配置简介
微服务·云原生·架构
DemonAvenger2 小时前
减少内存分配:Go中值类型与指针类型的选择
性能优化·架构·go
xzh2 小时前
问题:Nginx client_body_temp_path 文件会删除吗,删除时机?
nginx·架构
木头左2 小时前
Docker容器化技术中的联合文件系统原理探究
docker·容器·eureka
hstar95273 小时前
三十三、面向对象底层逻辑-SpringMVC九大组件之HandlerExceptionResolver接口设计
java·spring·设计模式·架构
itachi-uchiha3 小时前
Docker部署Hive大数据组件
大数据·hive·docker
互联网搬砖老肖3 小时前
Web 架构之 CDN 加速原理与落地实践
前端·架构
deletion丶4 小时前
在 Windows 系统上运行 Docker 容器中的 Ubuntu 镜像并显示 GUI
docker
白熊1884 小时前
【推荐算法】DeepFM:特征交叉建模的革命性架构
算法·架构·推荐算法
李明卫杭州6 小时前
UML中用例图的绘制
架构·uml