前言 #
笔者最近尝试在 x86 平台快速搭建一个 arm 平台的测试环境,节省对开发板的依赖,主要是用来测试应用层的软件,所以使用 docker 搭建了一个测试环境。
前期准备 #
- 宿主机:Ubuntu 24.04 x86_64
- 安装了 docekr
环境搭建 #
在 docker 运行跨架构的镜像,我是使用了 qemu-user-static 这个项目,
首先要开启 docker 的实验性功能,编辑 /etc/docker/daemon.json 文件,如果没有就创建,添加以下字段:
"experimental": true
安装工具包
sudo apt install qemu-user-static
开启 qemu-user-static 容器
docker run --privileged multiarch/qemu-user-static --reset -p yes
容器的选择 #
在 dockerhub 的 arm64v8 中,有许多不同镜像可以选择,例如 ubuntu、debian 等主流的 linux 发行版都是有的。
docker run -it --platform linux/arm64 -p 65110:80 -v $(pwd)/root:/root --name armbuntu_noble arm64v8/ubuntu:noble /bin/bash
指令解析:
arm64v8/ubuntu:noble:运行一个 arm64v8/ubuntu:noble 的容器,
–name armbuntu_noble:名称叫做 armbuntu_noble,
–platform linux/arm64:使用 arm64 平台,
-v $(pwd)/root:/root:将当前目录下的 /root 目录映射为容器的 /root 目录,
-p 65110:80:将容器的 80 端口映射为主机的 65110 端口。
效果如下: