QEMU是什么
QEMU是一個通用的開源的跨平臺仿真模擬器,提供user和system兩種模式。其模擬的作用可是可以模擬在特定的體系結構下的應用的執行或者構建,比如在x86的體系結構的操作系統上運行ARM的應用。
常見問題的場景
在ARM體系結構的硬件環境中安裝Docker,然后構建并運行ARM的鏡像自然非常簡單,但是如果沒有ARM環境,只有x86的機器又想做這件事情,這時QEMU也就有了用武之地,比如用友的技術中臺似乎就是通過QEMU來模擬ARM硬件進行模擬。
構建Arm鏡像
-
獲取ARM格式的ubuntu鏡像
docker pull arm64v8/ubuntu:20.04
-
獲取QEMU
使用它的原因是宿主的環境不是ARM架構,導致容器無法運行,所以需要QEMU來虛擬出Arm的架構。
下載地址:https://github.com/multiarch/qemu-user-static/releases
sudo cp qemu-aarch64-static /usr/bin/ sudo chmod +x /usr/bin/qemu-aarch64-static
-
注冊QEMU虛擬機
docker run --rm --privileged multiarch/qemu-user-static:register
📢 重啟電腦后需要重新執行注冊
-
創建Arm容器
docker run --rm -it \ -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static \ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ arm64v8/ubuntu:20.04 \ bash
-
測試容器架構
root@8674accc718a:/# uname -m aarch64