x86機器上執行arm64 docker

2021-09-24 13:08:21 字數 854 閱讀 4477

docker hub 上可以找到各種非 x86_64 平台的映象,但是在x86上直接執行會報錯:

panic: standard_init_linux.go:175: exec user process caused 「exec format error」 [recovered]

在 x86_64 平台上缺少執行 arm32v7 的 python 直譯器所需要的「環境依賴」,值得慶幸的是在 linux 上我們可以用 qemu 來做到跨平台執行,qemu 的 user-mode emulation 對於容器技術來說是最適合的模式。

拷貝檔案
sudo cp qemu-aarch64-static /usr/bin/

chmod +x /usr/bin/qemu-aarch64-static

執行命令

docker run --rm --privileged multiarch/qemu-user-static:register
這個提示可以忽略:
setting /usr/bin/qemu-alpha-static as binfmt interpreter for alpha

sh: write error: invalid argument

執行docker

docker run -it -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/ubuntu
ps,可以新增多個-v

ARM和x86的區別

cpu的指令集從主流的體系結構上分為精簡指令集 risc 和複雜指令集 cisc 嵌入式系統中的主流處理器 arm處理器,所使用的就是精簡指令集。而桌面領域的處理器大部分使用的是複雜指令集,比如intel的x86系列處理器。我們把arm處理器所使用的指令集稱為arm指令集,把x86處理器所使用的指令...

ARM與x86優劣比較

指令的強弱是cpu的重要指標,指令集是提高微處理器效率的最有效工具之一。從現階段的主流體系結構講,指令集可分為複雜指令集 cisc 和精簡指令集 risc 兩部分。相應的,微處理隨著微指令的複雜度也可分為 cisc 及 risc 這兩類。cisc是一種為了便於程式設計和提高儲存器訪問效率的晶元設計體...

X86和ARM的區別

區別 arm是risc架構 50多個指令,半開源 x86是cisc架構 至少981個指令,不開源 cisc架構 cpu的運算指令可以操作在暫存器和記憶體中,複雜性高。舉例 add mem reg 把記憶體資料和暫存器資料相加 risc架構 cpu只允許load和store指令與記憶體互動,而運算指令...