使用ruri快速构建跨架构chroot容器
在开发过程中,我们偶尔会用到跨架构Linux容器。
ruri全称“轻量型,用户友好的Linux容器实现”,是一个1M左右大小的Linux容器实现,提供了一系列功能选项,致力于成为更加强大且安全的chroot命令替换。
我们以在x86_64系统下运行arm64的Ubuntu容器为例:
确认binfmt_misc支持:
~$ cat /proc/filesystems | grep binfmt_misc
nodev binfmt_misc
确保能看见binfmt_misc的输出,大多系统甚至安卓的GKI内核应该都是支持的。
安装qemu-user-static:
sudo apt install qemu-user-static
获取rootfs:
这里使用作者编写的rootfstool脚本:
git clone https://github.com/Moe-hacker/rootfstool
cd rootfstool
./rootfstool download --mirror bfsu --distro ubuntu --version noble --arch arm64
于是我们得到了rootfs.tar.xz
获取ruri二进制:
前往https://github.com/moe-hacker/ruri/releases,下载最新的ruri-x86_64
wget https://github.com/Moe-hacker/ruri/releases/download/v3.3/ruri-x86_64
chmod 777 ruri-x86_64
解压rootfs,启动:
mkdir ubuntu-arm64
tar -xvf /path/to/rootfs.tar.xz -C ubuntu-arm64
cp /usr/bin/qemu-aarch64-static ubuntu-arm64/
sudo ./ruri-x86_64 -a aarch64 -q /qemu-aarch64-static ./ubuntu-arm64/
配置容器DNS:
最后在容器中:
rm /etc/resolv.conf
echo nameserver 114.114.114.114 > /etc/resolv.conf
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构