1. 引言
工作中常用電腦主機(jī)CPU為x86架構(gòu),有時由于產(chǎn)品需要,我們需要編譯aarch64架構(gòu)的SDK或者應(yīng)用程序供使用或者測試。
一種比較快捷的方式是使用aarch64的CPU構(gòu)建相應(yīng)操作系統(tǒng),實(shí)現(xiàn)真機(jī)運(yùn)行。但在無arm架構(gòu)CPU環(huán)境下,我們可否x86配合相應(yīng)軟件模擬aarch64指令集,實(shí)現(xiàn)程序的正常運(yùn)行呢?答案是可行的,下述方法將介紹一種使用qemu + 容器化部署方式,使我們可在x86機(jī)器上的Docker運(yùn)行arm64容器。
2. 容器構(gòu)建流程
- 下載qemu-aarch64-static.tar.gz
wget https://github.com/multiarch/qemu-user-static/releases/download/v5.1.0-2/qemu-aarch64-static.tar.gz
- 解壓、移動到/usr/bin/下、修改權(quán)限
tar -zxvf qemu-aarch64-static.tar.gz
sudo cp qemu-aarch64-static /usr/bin/
chmod +x /usr/bin/qemu-aarch64-static
- 注冊qemu解釋器
docker run --rm --privileged multiarch/qemu-user-static:register --reset
- 測試arm64容器是否可以啟動
docker run -t -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/ubuntu:20.04 uname -m
# 返回
aarch64
說明可以運(yùn)行arm64容器了,接下來便可將交叉編譯好的aarch64應(yīng)用程序移至容易內(nèi)運(yùn)行。
注意:由于qemu本質(zhì)上是使用x86指令對arm64指令集進(jìn)行仿真(虛擬機(jī)),因此實(shí)際運(yùn)行性能會比真機(jī)差很多 (可能耗時差幾十甚至上百倍)。文章來源:http://www.zghlxwxcb.cn/news/detail-735283.html
3. 參考
https://www.jianshu.com/p/a1c90b4af5cf
https://blog.csdn.net/ccgshigao/article/details/109631585
https://github.com/multiarch/qemu-user-static文章來源地址http://www.zghlxwxcb.cn/news/detail-735283.html
到了這里,關(guān)于在x86機(jī)器上的Docker運(yùn)行arm64容器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!