前言(不想看可直接略过):
termux-container是我写的在手机中运行chroot-unshare/proot容器的脚本,支持自动解析rootfs链接,支持跨架构(proot)运行容器,自定义程度较高。chroot-unshare容器安全性高于普通chroot容器,同时保证执行效率。它借鉴了tmoe,但是与tmoe完全不同–它让用户自定义安装过程而不是直接替用户安装容器。
知识普及(简单了解):
chroot:字面意思是改变根目录,用于把进程限制在某一目录内,可利用这一特性来运行linux容器,但是它除目录外没有其它隔离,因此相对危险。
unshare:字面意思是不共享,用于隔离进程,需要内核namespace支持,不过至少可以做到挂载点隔离(基于mount namespace)–容器外部无法访问容器内挂载的系统目录。
proot:非特权模式binfmt_misc,chroot和mount实现,用于免root运行容器,但是效率较低,且有系统文件读写限制(脚本中/proc下文件已经借鉴tmoe的文件列表修复读写)。
chroot-unshare实现原理:
chroot-unshare是一个安全的在手机中运行chroot容器的方法,通过参考网络上的文档,我写出了和tmoe不同的实现–先通过unshare运行chroot,把进程隔离,然后再在容器内部挂载系统目录(/proc,/dev,/sys),手动创建/dev下所有设备,防止手机分区暴露,最后把重要目录挂载为只读(只读目录列表参照了docker容器的挂载点)。
(水了一堆了,教程呢???)
使用教程:
打开termux,安装git,然后
安装:
git clone https://github.com/Moe-hacker/termux-container
cd termux-container/package-zh
chmod -R 755 DEBIAN
chmod 777 data/data/com.termux/files/usr/bin/container
dpkg -b . ~/termux-container.deb
apt update
apt install ~/termux-container.deb
运行:
输入container打开菜单,你将会看到如下界面:
![v2-fc1425767bb4860680923e1e795753a1_720w.webp v2-fc1425767bb4860680923e1e795753a1_720w.webp](https://www.sunzishaokao.com/wp-content/uploads/2022/10/v2-fc1425767bb4860680923e1e795753a1_720w.webp.jpg)
选择2,创建一个新容器,
你将看到如下界面:
![v2-a1f2795052220af337a4b1324fde31f1_720w.webp v2-a1f2795052220af337a4b1324fde31f1_720w.webp](https://www.sunzishaokao.com/wp-content/uploads/2022/10/v2-a1f2795052220af337a4b1324fde31f1_720w.webp.jpg)
根据自己的设备情况进行选择,有root选1,没root或者你想跨架构运行容器选2。
然后根据自己的需要填写相关内容,贴出两个示例:
![v2-845f0500f21a713eb54b93e9f5f4e3ec_720w.webp v2-845f0500f21a713eb54b93e9f5f4e3ec_720w.webp](https://www.sunzishaokao.com/wp-content/uploads/2022/10/v2-845f0500f21a713eb54b93e9f5f4e3ec_720w.webp.jpg)
![v2-a9592d864c0b8db67300e93595c81daf_720w.webp v2-a9592d864c0b8db67300e93595c81daf_720w.webp](https://www.sunzishaokao.com/wp-content/uploads/2022/10/v2-a9592d864c0b8db67300e93595c81daf_720w.webp.jpg)
然后,再次输入container,选择1,即可运行容器
![v2-7a37f99ea67468e6f0e972c1a78f0783_720w.webp v2-7a37f99ea67468e6f0e972c1a78f0783_720w.webp](https://www.sunzishaokao.com/wp-content/uploads/2022/10/v2-7a37f99ea67468e6f0e972c1a78f0783_720w.webp.jpg)
进阶用法参照container -h:
![v2-2880308c48497ac19a3775b864a2c2fa_720w.webp v2-2880308c48497ac19a3775b864a2c2fa_720w.webp](https://www.sunzishaokao.com/wp-content/uploads/2022/10/v2-2880308c48497ac19a3775b864a2c2fa_720w.webp.jpg)
转载于 知乎
暂无评论内容