
舊 Android 手機跑 Docker 唔使 root:Podroid 有得玩,但未夠班做長開 server
Termux 入 Linux 易,真容器要靠 VM,速度同供電限制要睇清楚
Termux 做到 Linux 環境,做唔到完整 Docker host
XDA 作者先喺舊 Poco M6 Pro 4G 用 Termux 配 PRoot,Debian、Fedora 同一批 command-line 工具都跑得到,部分服務亦可以直接裝。不過 PRoot 只係喺 user space 攔截 system call,冇真正 root、cgroup 同 Linux namespace;Termux 官方 PRoot-Distro 文件亦寫明,呢條路冇 Docker daemon,container-in-container 同完整 init system 都唔支援。想開個 Linux shell、跑 script 或單一 web app,Termux 已經幾好用;要照搬現成 Docker stack,限制就好快浮面。

圖片:ExTV/Podroid
Podroid 係喺手機入面再開一部 Linux VM
作者最後轉用 Podroid。佢唔使 root,會喺 Android app 入面開一部 Alpine Linux VM,VM 有自己嘅 kernel,Docker、Podman、LXC 同 OpenRC 都預先準備好。按官方資料,支援門檻係 ARM64 手機同 Android 8 或以上。呢個架構避開 Android kernel 缺少 container 功能嘅問題,不過代價係多咗一層虛擬化,食多啲 RAM、電量同儲存,亦要靠 Android 繼續畀個 app 留喺背景運行。

圖片:ExTV/Podroid
舊機多數行 QEMU,效能唔好照作者個例子推算
XDA 作者分配 4 個 CPU core,起初畀 VM 2GB RAM,之後加到 4GB,話可以同時跑 BentoPDF、ConvertX、n8n、BeaverHabits 同近十個其他 app;呢個係佢部機嘅個人使用結果,原文冇 benchmark、負載量或者長期 uptime。Podroid 官方效能文件就講得幾直:一般舊機會用 QEMU 軟件模擬,簡單工作都可能慢過 native 兩至五倍,Node、JVM、編譯同壓縮會再吃力。部分有 pKVM 嘅新機可改用 AVF 硬件加速,但「清櫃桶舊機」多數享受唔到。
ARM image 同儲存,開工前要先計數
Podroid 個 guest 係 ARM64,所以應先確認每個 image 有冇 linux/arm64 build。Docker 官方文件解釋,image 架構要同執行環境相容;registry 有 multi-platform manifest,先可以自動揀啱版本;得 linux/amd64 嘅舊 image 就要再模擬 x86,Podroid 官方直指呢種雙重模擬會慢得好誇張。儲存容量亦唔可以求其揀:首次設定可分配 2GB 至 64GB sparse disk,但官方限制頁話之後想改容量要重設 VM。大量 image、database、log 同備份,好快就會食晒舊機本身唔多嘅空間。
Port 限制有得繞,但唔代表每款服務都啱用
Container 開咗 web UI,仲要由 VM port forward 去 Android。Podroid 係普通 app,冇權綁定 1024 以下嘅 host port,所以 HTTP、HTTPS 同 SSH 通常要改用 8080、8443、9922。XDA 作者話 Pi-hole 跑唔到;Podroid 最新網絡文件補充,其實可以將 DNS 改去 5353 呢類高 port,但好多 router 同 client 預設只搵 53,實際上仍然唔係即裝即用。GPIO、硬碟陣列、可靠 LAN 服務或者正式 database,留返畀 Raspberry Pi、mini PC 或 NAS 會穩陣好多。
帶住私人服務出街,先處理連線同密碼
手機有電池同流動數據,的確似自帶 UPS 同 modem,出街都可以開自己嘅 PDF 工具或輕量 dashboard。不過 Podroid 建立 port forward 時會綁定 0.0.0.0,同一個 Wi-Fi 入面其他裝置都可能連到;官方預設 SSH 帳戶資料仲要即刻換走。唔建議直接喺 router 開 public port,較穩妥係用 Tailscale 呢類私人 mesh VPN,再限制帳戶、裝置同可連 port,同時替 Alpine、container image 同 app 保持更新。帶出街用之前,記得先設定好連線、帳戶同存取限制。
長插電同 Android 背景管理,決定佢可唔可以長開
手機長期運算兼充電會積熱,Google 電池指引提醒高溫會傷電池,尤其滿電時更要保持散熱。真係當 server 用,應拆走厚殼、放喺通風位置,手機有充電上限就設到約 80%,亦要定期睇電池有冇脹、機背有冇拱起;一見異常就停用同拔電。Android 12 或以上仲可能殺掉 VM 背景程序,所以 Podroid 適合實驗、臨時工具同可隨時重開嘅服務,唔適合擺重要資料或者靠佢提供 24 小時服務。
參考來源
- XDA Developers — I turned my old phone into a portable Docker server, and now I carry my self-hosted apps everywhere I go — original report
- Podroid 官方 GitHub — 核實免 root、Alpine Linux VM、Android/ARM64 要求同內建 container 工具。
- Podroid:Limitations & troubleshooting — 核實 QEMU 效能、ARM 架構、儲存改容量限制同 Android 背景程序問題。
- Podroid:Networking & port forwarding — 核實 port forwarding、低位 port、LAN 暴露範圍、SSH 同高 port workaround。
- Termux PRoot-Distro — 核實 rootless Linux 環境、kernel 功能、namespace、cgroup 同 Docker daemon 限制。
- Docker Docs:Multi-platform builds — 核實 ARM64/AMD64 image 相容性、multi-platform manifest 同模擬效能代價。
- Android Help:Get the most life from your Android device's battery — 官方電池保養指引,支援長插電時要控制溫度嘅提醒。
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







