Docker+QEMU+Arm64(Ubuntu)+环境配置(2022版)

把multiarch/qemu-user-static特权提升,就可以在x86_64使用其他架构的镜像

1
docker run --rm --privileged multiarch/qemu-user-static --reset --persistent yes

测试下arm64的镜像能不能运行

1
docker run --rm -t arm64v8/ubuntu

OK,成功了,装个neofetch发了个截图到群里

0.png

配置源

需要补装一个ca-certificates才能使用https的源

1
apt install ca-certificates

选用北外源

1
2
3
4
5
6
7
8
deb https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
# deb-src https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
# deb-src https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse

配置ssh

设置密码

1
passwd

开启默认SSH,由于不能使用systemctl,参考下面方案让SSH常驻

docker中安装Ubuntu无法在启动时运行ssh服务的解决方案

结语

看这个仓库好像目前只能x86_64去模拟arm64,而arm64的机子无法模拟x86

Need support for run x86_64 on linux/arm64

我本来是想在Docker里面做Arm64的GDB实验的,但是Docker默认禁用ptrace,而Arm64镜像在QEMU内,不知道怎么一直无法开启GDB,所以不了了之。

如果是模拟整个系统的话,可以参考我之前写的文章:

Arch Linux运行树莓派系统(2022年)