X86架构 vs ARM架构

  • X86和ARM架构最本质的区别在于复杂指令集和精简指令集。

  • X86是基于复杂指令集(CISC, Complex Instruction Set Computing)。复杂指令集的特点是指令丰富,有专用指令来完成特定的功能,因此处理特殊任务的效率较高。但缺点是CPU需要包含丰富的电路单元,因而面积大、功耗大。

  • ARM是基于精简指令集(RISC, Reduced Instruction Set Computing),精简指令集顾名思义,指令数有限,设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对复杂的功能,常通过组合指令来完成,因此在RISC机器上实现复杂功能时,可能效率较低。优点是CPU包含较少的单元电路,因而面积小、功耗低,且制造工艺简单、成本相对低廉。

本文需求

  • 部分arm架构的NAS设备系统上遇到网络故障,直接拉取arm的Docker镜像循环失败。

  • 由X86架构的系统手动拉取镜像进行导出,然后再导入到arm的NAS中。

  • 但是部分镜像没有单独的架构标签,默认使用X86架构的系统拉取下来的是amd64的,无法在arm设备上使用。

名词解释

  • 解释DockerHub上的操作系统/架构的意思

  • linux/amd64:指可用于Linux系统,X86(64位)架构系统上。

  • linux/arm64:指可用于Linux系统,arm(64位)架构系统上。

  • linux/arm32:指可用于Linux系统,arm(32位)架构系统上。

演示环境

  • 黑群晖物理机(虚拟机也一样):DS918+DSM7.2

  • 需要使用arm架构Docker镜像的设备系统:极空间Z2

操作步骤

拉取镜像

  1. 打开群晖的SSH功能,使用终端软件进行连接,并切换到root状态下。
    image-pmrl.png

  2. 访问DockerHub官网,搜索你需要使用的Docker镜像。

    https://hubgw.docker.com/

  3. 演示以随意拉取一个第三方的nastool镜像为例,找到你需要使用的版本。
    随意选择一个最新的版本(latest标签),点击