多容器隔离——ZeroTermux 核心差异点解析
一句话理解
容器就是 ZeroTermux 内部的独立 Termux 实例。你可以在设备上同时拥有多个容器,每个容器有自己的软件包、自己的家目录、自己的配置文件——互不干扰。
为什么需要多容器
想象这些场景:
- 开发环境 vs 日常环境:日常装了 curl/wget/git,开发环境要装 clang/python/node,两者混在一起装过的包卸载不干净、版本冲突。用容器隔离,开发容器只装开发工具,日常容器保持清爽。
- 不同发行版并行:想同时玩 Ubuntu 和 Kali,容器隔离后各自独立,不会互相覆盖
$PATH和$LD_LIBRARY_PATH。 - 实验场:想试试新脚本或危险操作,在实验容器里折腾,搞崩了直接删容器就行,不影响主力环境。
- 备份恢复分号:测试恢复包能不能正常工作,需要另外一个容器来验。
和其他隔离方案的区别
| 方案 | 隔离级别 | 复杂度 | ZeroTermux 支持 |
|---|---|---|---|
| 多容器(ZeroTermux) | 用户空间(proot) | 菜单操作,零命令 | 原生支持 |
| proot 手动跑 | 用户空间 | 手写 proot 命令 | 支持,但不推荐(用容器代替) |
| chroot | 用户空间 | 需要 root | 不支持(ZeroTermux 不 root) |
| 虚拟机(QEMU) | 完整系统 | 重,耗资源 | 支持,但另一个入口 |
容器 vs 发行版
很多用户搞混这两个概念:
- 容器是 ZeroTermux 里的隔离层,基于 proot,轻量、快速,本质上是多个独立的 Termux 用户空间
- 发行版(Ubuntu / Kali 等)是在容器内部运行的完整 Linux 发行版用户空间,通过发行版安装入口一键部署
一个容器里可以装一个发行版;也可以不装发行版,只用原生 Termux 环境。
切换为什么要重启
容器的 PREFIX 路径在 ZeroTermux 启动时就确定了,切换容器需要让应用重新读取新的路径配置。所以切换后必须完全退出 ZeroTermux 并重新打开。
容器与数据目录
ZeroTermux 默认数据放在 /sdcard/xinhao/ 下,但各容器的 PREFIX 和家目录不在那里——它们藏在 Termux 的应用内部存储里。所以切换容器不会动你 xinhao 目录下的文件,备份恢复也需要用 ZeroTermux 自带的打包功能。