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

相关推荐
nnn__nnn20 小时前
卷积神经网络经典架构全景解析:从 ILSVRC 竞赛到视觉技术的生态级演进
计算机视觉·架构·cnn
菜鸡儿齐20 小时前
本地事务实效-分布式架构
分布式·架构
打码人的日常分享20 小时前
基于信创体系政务服务信息化建设方案(PPT)
大数据·服务器·人工智能·信息可视化·架构·政务
小坏讲微服务21 小时前
Spring Cloud Alibaba整合SkyWalking的监控完整使用
java·微服务·架构·springcloud·监控·skywalking·java微服务
ringking12321 小时前
docker源文件配置以及密钥文件
运维·docker·容器
编织幻境的妖21 小时前
Docker和Kubernetes 常用命令
docker·容器·kubernetes
周杰伦_Jay1 天前
【基于 Spring Cloud Alibaba 的微服务电商项目】完整实现思路
微服务·云原生·架构
7***53341 天前
微服务分布式事务解决方案
分布式·微服务·架构
S***q1921 天前
后端服务架构设计:从单体到微服务
java·微服务·架构
T***u3331 天前
微服务书籍
java·微服务·架构