在逛GitHub时看到一个有趣的项目,这个项目竟然把完整的Alpine Linux虚拟机搬进了安卓手机,一个纯靠手机自身就能跑Docker容器的便携式微型服务器。
拿手边一台闲置的旧手机试了一下,装上APK点开启动虚拟机,几秒钟就初始化好了,Docker、Podman、端口转发和图形桌面全都在,完全没有卡顿感。感觉和用真正的轻量云服务器差别不大。
项目叫 Podroid,作者基于 QEMU 和硬件级虚拟化写了一套完整的独立系统,底层自带独立内核,不用Root手机,也不需要借用电脑折腾。我下载部署测试了一下感觉不错,今天来聊聊这个东西。

Podroid 初始待机界面,支持一键引导启动独立的 Alpine Linux 虚拟机
Podroid 是个什么
Podroid 是开发者个人维护的开源安卓端 Linux 虚拟机与容器工作台,基于 GPL-2.0 协议开源,全部功能免费无广告。现在在GitHub上面已经有近3kStar了,但项目还处于初级阶段,一些功能还是不太完善。
底层通过 QEMU 与安卓硬件级虚拟化(AVF)构建独立运行的 Alpine Linux 环境,配有完整的 Linux 独立内核。它不是以往那种通过 chroot 或 proot 借壳运行的受限环境,内置的 Podman、Docker 和 LXC 能够像在正规 Linux 服务器上一样原生执行。手机端只要系统在 Android 8.0 以上、采用 64 位 ARM 处理器即可直接安装。所有容器运行和网络链路都走本地局域网,不经过任何外部服务器。对于数据的隐私还是很高的。

虚拟机运行状态面板,清晰展示局域网 IP、内存开销与端口转发规则
功能详情
开箱即用的完整 Docker 环境
找手机跑Linux大家最关心的就是能不能正常拉取和运行容器。以前在手机上折腾Termux跑Docker,要么必须冒风险解锁Root手机,要么受限于内核权限到处报错。Podroid 自带了独立的Linux内核,开机之后直接原生支持 Docker 和 Podman 命令。我找了个 Nginx 网页和轻量博客丢进去拉取测试,容器启动和页面渲染识别得很正常。正规云服务器能支持的这个项目差不多也能支持。
有一点很人性化,软件内置了端口穿透命令,一行指令就能把容器内部的端口映射到手机局域网IP上,同一个Wi-Fi下的电脑直接就能访问网页。

内置全功能终端视口,支持 Fastfetch 系统信息读取与 256 色真彩渲染
自带 X11 图形桌面与文件穿透
除了命令行运维,应用里还内置了一套完整的 X11 图形桌面查看器。可以通过触摸、外接鼠标键盘甚至音频,直接运行带图形界面的 Linux 软件。
手机与虚拟机之间开通了双向文件共享,手机自带的下载目录(Downloads)可以直接挂载进 Linux 目录,存取文件不用繁琐地到处转存,习惯在终端和图形界面切着用的人用起来不会感到生疏。
终端外观与快捷配置
软件内置的终端模拟器做了大量针对手机触屏的体验优化。提供了 122 套配色主题和 13 种等宽字体,支持终端窗口自适应缩放与按键栏自定义。
手头需要用电脑远程管理的,可以在设置里一键开启 SSH 服务,笔记本敲一行命令就能免密连入手机,方便日常批量部署。

终端快捷偏好设置,内置 122 套主题色彩与丰富等宽字体库
快速开始
体验非常简单,手机浏览器直接下载官方编译好的 APK 安装包即可:
https://github.com/ExTV/Podroid/releases/latest
安装好之后打开 App,点击「Start VM」按钮,等待状态变为「Ready!」即可点击进入终端。测试容器运行命令:
podman run --rm alpine echo 'hello from a container'
docker run -d -p 8080:80 nginx
如果想把手机里容器运行的服务开放给同局域网的电脑访问,执行端口映射命令:
podroid-forward add 8080 8080 tcp
curl http://:8080
podroid-forward clean
想直接从电脑端远程敲命令管理手机虚拟机的,在终端里开启 SSH 后执行这行:
ssh root@-p 9922
喜欢自己编译或者二次开发项目的同学,克隆仓库后执行脚本即可自动化构建全套固件与安装包:
git clone https://github.com/ExTV/Podroid.git
cd Podroid
./build-all.sh all
什么人适合用
• 手头有闲置旧安卓手机想变废为宝当低功耗家用服务器的人,自己手头有旧手机,不知道怎么利用,又不想花钱买昂贵的软路由或NAS,这个项目的虚拟机值得一试,等练熟了再买硬件也不迟
• 喜欢折腾 Docker 与微服务的开发者,随时随地在随身手机里跑本地数据库、自建博客或者自动化脚本,不用折腾复杂的云端服务器配置
• 在校学习计算机与 Linux 运维的学生,手头没有专业实验机器,装个 App 就能在真实内核环境里练命令、排查报错。
我的看法
用了几天,整体惊喜大于预期。市面上很多号称手机跑 Linux 的工具,大部分要么只是套了个简陋的容器壳子到处缺驱动,要么对非 Root 设备百般刁难。Podroid 能在免 Root 的前提下,把真实虚拟机内核、Docker 容器与 X11 桌面做得这么齐整,确实难得。基本上复刻了正规微型服务器的核心精髓,这个项目确实不错。
缺点也有,项目还在开发早期,目前仍在活跃开发阶段,部分低性能老手机在编译庞大镜像时发热会比较明显。如果是公司里极其重要的生产业务与高并发数据库,不建议完全跑在手机上,部署前记得顺手插上充电器并备份一份关键数据。毕竟只是一个半成品,把手机里的系统折腾出毛病了担当不起。
不过作为日常跑跑自建服务、挂载轻量容器以及学习折腾的工具,它已经足够好用了,干净无广告,下载 APK 几分钟就能跑起来,需要的时候点开就能用。特别是对于那些手头有闲置安卓机的同学,自己折腾不好闲置利用的,可以试一下这个项目的虚拟机模式,练练手。
开源地址:
项目遵循 GPL-2.0 自由开源协议。请遵守开源规范。
评论