旧安卓手机改NAS:安装Docker篇,直接跑Docker当服务器
先问你一个问题:你手上那台吃灰的旧安卓手机,除了当闹钟、当遥控器、给小孩看动画,还能做什么?很多人第一反应是改成 NAS。但真去搜教程就会发现,大部分文章教你的只是开个 SMB 共享、装个 WebDAV 服务,做出来的东西说白了就是一个“网络U盘”,离服务器还差得很远。
真正的分水岭,是能不能在手机上跑起 Docker。
跑起 Docker 之后,这台旧手机可以同时运行 Nginx、MySQL、Redis、定时任务、博客系统、下载工具……一个轻量 ARM 服务器该有的能力它都能具备;跑不起来 Docker,它就只是一个需要单独维护、功能单一的文件共享盒子。
这篇文章就是《旧安卓手机改 NAS》系列里最关键、也最劝退的一步:安装 Docker。如果你已经有一台解锁了 Root、且硬件还凑合的旧安卓手机,这篇文章会告诉你:
- 安卓为什么能跑 Docker,又为什么这么难装;
- 三条安装路线的优劣和选择逻辑;
- 从设备评估到 Rootfs 准备,再到启动 dockerd 的完整实操步骤;
- 跑通 Docker 后,立刻能部署哪些常用服务;
- 最常见的报错现象和排查思路。
1. 为什么说 Docker 是旧手机改 NAS 的分水岭
很多人改造旧手机的第一步是装一个文件共享软件,比如 Samba、WebDAV 或者 FTP。手机连到家里路由器上,电脑和电视能访问里面的电影、照片、文档,看起来确实像那么回事了。
但往深一层想,NAS 解决的是存储集中问题,服务器解决的是计算与网络服务问题。一台只能共享文件的旧手机,撑死算是“外置硬盘加了个网口”。
Docker 带来的改变,是把“能用”变成“能干”。
一个典型场景:你想在旧手机上跑一个博客、部署一个数据库、启动一个下载工具、再加一个定时备份任务。如果没有 Docker,你得逐个解决依赖、版本、环境隔离、开机启动、日志管理。每加一个服务,就是一次新的折腾。
有了 Docker 之后,这些服务几乎都收敛成一条命令:
bash复制docker run -d --name nginx-blog -p 8080:80 nginx:alpine
同一套命令,今天可以跑在台式机的 Ubuntu 上,明天可以跑在云服务器上,后天也可以跑在旧手机改的 ARM 服务器上。只要内核支持,镜像架构匹配,业务本身不挑硬件。
这也是我反复强调 Ddocker 是分水岭的原因:跨过 Docker 这一关,旧手机的角色就变了。它不再是一个需要用专门工具对接的“安卓设备”,而是一台可以用标准 Linux 工作流去管理和部署的 ARM 服务器。
很多人改旧手机失败,不是动手能力差,而是把目标搞错了。没有 Docker 之前,你每加一个功能,都要重新研究一套安卓方案;有了 Docker 之后,你只需要研究一次 Docker 的安装和网络。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安卓为什么能跑 Docker,又为什么这么难装
先吃一颗定心丸:安卓底层确实是 Linux 内核,理论上完全具备运行容器的条件。
容器的本质,是 Linux 内核提供的三种能力:
- namespaces:让容器里的进程有独立的 PID、网络、挂载点等视图;
- cgroups:限制和控制容器进程的 CPU、内存、设备访问;
- 网络隔离:通常借助 iptables/netfilter 和 veth 虚拟网卡,打通容器与宿主机的网络。
现代安卓手机的内核,其实都保留了这些能力。比如你用 ADB 执行 uname -r,看到的往往是 4.x 或 5.x 的 Linux 内核版本,远高于十年前 Docker 刚流行时的内核要求。
那为什么在安卓上装 Docker 还是这么难?
因为 Android 不是一个完整的 Linux 用户态环境。
这里有四个核心差异:
第一,没有 systemd。绝大多数 Linux 发行版启动 Docker 是靠 systemd 拉起 dockerd,安卓没有这一套东西,你得手动启动守护进程。
第二,没有完整的包管理器。安卓的运行时库是 bionic,不是 glibc。Docker 官方提供的二进制主要面向 glibc 发行版,直接放到安卓系统目录里经常会因为缺少动态库而失败。
第三,文件系统布局和权限模型不同。安卓的 /data、/system、/vendor 都有自己的挂载策略,SELinux 策略也比标准 Linux 发行版严格得多。容器需要写 /sys/fs/cgroup、创建 veth 网卡、操作 iptables,这些操作在没有 Root 权限、没有放行系统调用的情况下都会被拒绝。
第四,厂商内核可能裁剪过。某些设备厂商为了省电、防刷机,会关掉一些内核配置项,或者根本没有编译相应的驱动和模块。比如 CONFIG_NAMESPACES、CONFIG_CGROUPS、CONFIG_NETFILTER 如果没开启,Docker 就跑不起来。
所以结论很清晰:安卓能跑 Docker,但前提是设备满足三要素。
- 已获取 Root 权限,或者可以刷入允许完整 mount namespace 的操作系统;
- 处理器是 arm64(绝大多数近十年的手机都没问题);
- 内核保留了容器必需的功能模块。
如果这三项都满足,你就有资格尝试安装 Docker 了。
3. 三条路线选哪条:不刷机、Root + chroot、刷 Linux
真正开始安装之前,需要先做一次路线选择的判断。根据是否刷机、是否保留安卓系统,可以把旧安卓手机跑 Docker 的方案分成三条路线。
| 路线 | 是否保留安卓 | 是否需要 Root | Docker 可运行程度 | 折腾难度 | 适合人群 |
|---|---|---|---|---|---|
| Termux + proot | 保留 | 不需要 | 基本跑不了,仅能当普通 Linux 环境学习 | 低 | 只想体验 Linux 命令行的用户 |
| Root + chroot rootfs | 保留 | 需要 | 部分设备可跑,需要处理 cgroups / iptables / 存储驱动 | 中高 | 还想保留安卓功能,同时想要 Docker 的折腾派 |
| 直接刷 Linux 发行版 | 放弃安卓 | 需要解锁 Bootloader | 接近原生支持,Docker 基本可用 | 高 | 有备用机,能接受变砖风险和功能损失 |
3.1 Termux + proot:最温柔,但离 Docker 最远
Termux 是安卓上的终端模拟器,你在里面能跑 apt、python、node、nginx,看起来像一个 Linux 环境。再配合 proot-distro,它还能模拟出一个 Ubuntu 或 Debian 的根文件系统。
但 proot 并不是真实的 chroot,也不是内核级容器。它是在用户态拦截系统调用,模拟出“看起来像 root”的环境。这种环境下 Docker daemon 几乎没有可能正常启动,因为容器需要的 namespaces、cgroup 挂载、iptables 等能力,proot 要么做不到,要么会被内核拒绝。
所以我给这条路线的判断是:适合当“安卓上的 Linux 学习机”,但不适合当作搭建 Docker 服务器的主路线。
3.2 Root + chroot rootfs:兼顾安卓与服务器的折中方案
这条路线是本文重点讲的方案。
思路是:安卓系统保留,但在手机上准备一个完整的 Linux rootfs(比如 Ubuntu 22.04 arm64),通过 Root 权限把它挂载起来,再用 chroot 进入这个 Linux 环境,在这个环境里安装并启动 Docker。
它的优势很直接:
- 不改动手机原有系统,刷机风险低;
- 拥有完整的 glibc、systemd 可选包、包管理器;
- 手机翻车了,重启还能正常当手机用;
- 通过挂载共享目录,Linux 环境里的 Docker 可以直接使用手机的照片、下载、SD 卡目录。
它的问题也很明显:最终能不能跑起来,取决于手机内核提供的能力。如果内核把某些配置裁掉了,dockerd 能启动,但创建容器时依然会失败。
3.3 直接刷 Linux 发行版:最接近真服务器,但门槛最高
如果这台旧手机确实没有保留价值,你可以考虑刷 postmarketOS、Ubuntu Touch 或者对应机型的第三方 Linux 系统。刷机之后,手机不再是安卓系统,而是一台带触摸屏和电池的 ARM Linux 小主机。
这条路线的 Docker 接近原生体验,因为用户态完整、systemd 完备、文件系统布局也正常。
但代价也很明显:
- 可用机型有限,不是所有手机都有维护中的移植镜像;
- 需要解锁 Bootloader、关闭相关校验,才能刷入第三方系统;
- 基带、Wi-Fi、蓝牙、摄像头、音频等功能很可能不完整;
- 操作失误变砖的风险更高。
如果你手里正好有一台社区支持良好的设备(比如部分 LineageOS 设备),而且你愿意承担风险,这条路是“旧手机当服务器”的最优方案。否则,还是从 Root + chroot 开始更稳妥。
4. 动手前:设备检查和 Termux 基础环境
在跑任何安装命令之前,请先花五分钟确认你的设备基础条件。
4.1 检查架构、内核和 Root 状态
打开旧手机的“设置 → 关于手机”,查看安卓版本和内核版本。更准确的方式是安装 Termux 后直接执行命令。
关于下载 Termux,有一句提醒:不要从 Google Play 商店安装 Termux。Play 商店上的版本已经很久没更新,会缺很多包。建议从 F-Droid 或者 Termux 官方 GitHub Releases 页面下载最新版。
安装 Termux 后,打开终端依次执行:
bash复制# 更新 Termux 自带软件源
pkg update && pkg upgrade -y
# 查看 CPU 架构,arm64/aarch64 是跑 Docker 镜像的加分项
uname -m
# 查看 Linux 内核版本,超过 4.0 会更好
uname -r
# 安装必要工具
pkg install -y tsu wget curl tar proot-distro
这里解释几个包的作用:
tsu:Termux 下切换 root 用户的工具,配合 Magisk/KernelSU 提供的 Root 使用。proot-distro:下文会用它在手机上快速获取一个可用的 Linux rootfs 文件,作为 chroot 的素材来源之一。curl和tar:后面下载和压缩 rootfs 会用到。
如果你对手机是否 Root 了还不确定,可以在 Termux 里执行:
bash复制# 输入 su 回车,出现 # 前缀说明有 Root 权限
su
如果你的设备既没有 Root,也不能解锁 Bootloader,那这条路线就要重新评估了。
4.2 确认存储空间
建议手机至少预留 8GB 可用空间。完整 Ubuntu rootfs 通常需要 2GB 到 3GB,Docker 镜像和容器数据还会继续增长。存储小的设备,可以把 rootfs 放在外置 SD 卡,但 SD 卡性能会影响容器性能,也更怕断电损坏。
4.3 准备 Root 权限
如果你是自有设备,并且确定要折腾这步,目前主流方案是 Magisk 或 KernelSU。不同机型的刷入流程差异很大,本文不展开具体刷机步骤。这里只强调三点:
- 操作前一定完整备份照片、通讯录等个人数据;
- 找到对应机型的官方 Root 教程,按步骤操作;
- 解锁 Bootloader 或获取 Root 会触发厂商安全警告,后果需要自行判断。
5. 实操:Root 环境下准备 Linux rootfs 并安装 Docker
假设你已经拿到 Root,且手机系统还能正常工作。现在开始部署 rootfs。
5.1 方式一:用 proot-distro 快速准备一个 rootfs
这是最快的方式。proot-distro 会从镜像源下载一个可以被 Termux 直接调用的 Linux 根文件系统。虽然它默认是给 proot 模式用,但我们也可以把它当作一份现成的 rootfs 素材。
bash复制# 在 Termux 中执行
proot-distro install ubuntu
安装完成后,rootfs 默认位于 $PREFIX/var/lib/proot-distro/installed-rootfs/ubuntu。
你可以先用下面的命令进入看看,确认它是可用的 Ubuntu 环境:
bash复制proot-distro login ubuntu
如果你只是想“进 Linux 环境里用命令行”,到这里其实已经够了。但如果你要继续走 Docker 路线,需要退出这个环境,切换到真实的 chroot。
5.2 方式二:用 debootstrap 构建干净 rootfs
proot-distro 下载的 rootfs 文件布局是为用户态模拟设计的,在真实 chroot 下一般也能用,但更干净的做法是用 debootstrap 或者直接拉取 Ubuntu 官方 rootfs tarball。
以 debootstrap 为例,你可以在 Termux 里执行:
bash复制su
# 准备 rootfs 目录
export ROOTFS=/data/local/tmp/ubuntu
mkdir -p $ROOTFS
# 用 debootstrap 构建 Ubuntu 22.04 的 arm64 根文件系统
debootstrap --arch=arm64 --variant=minbase jammy $ROOTFS https://ports.ubuntu.com/ubuntu-ports/
在 Termux 里直接跑 debootstrap 可能受限于环境,如果遇到困难,可以改为下载现成的 Ubuntu rootfs tarball。这里的关键点不是用什么工具,而是最终在 /data/local/tmp/ubuntu 里得到一个完整的 Linux 根目录。
5.3 把 rootfs 挂载成可 chroot 的运行环境
这一步非常关键。chroot 之后,进程的根目录会切换到 rootfs,但如果 /dev、/proc、/sys 没有正确挂载,很多程序会直接报错。
在 Termux 中执行:
bash复制su
export ROOTFS=/data/local/tmp/ubuntu
mount --bind /dev $ROOTFS/dev
mount --bind /dev/pts $ROOTFS/dev/pts
mount --bind /proc $ROOTFS/proc
mount --bind /sys $ROOTFS/sys
mount --bind /sdcard $ROOTFS/sdcard
chroot $ROOTFS /bin/bash
进入 chroot 后,你的提示符会变成类似 root@localhost:/#,现在你就在一个真实的 Linux 用户态环境里了。
先确认网络和包管理器正常:
bash复制apt update && apt install -y wget curl ca-certificates
5.4 安装 Docker:优先用 apt,再考虑官方静态包
在 chroot 的 Ubuntu 环境里,最简单的方式是直接装发行版仓库里的 docker.io:
bash复制apt install -y docker.io
这种方式的优势是依赖完整、安装省事。缺点是版本可能不是最新,但对我们旧手机跑服务来说,稳定比新功能更重要。
如果你想用 Docker 官方静态二进制,可以到 download.docker.com/linux/static/stable/arm64/ 目录下选一个版本,再手动解压安装。下面以占位示例说明:
bash复制# 先到上述目录查看可用版本,把这个变量改成你需要的版本
DOCKER_VERSION=24.0.7
wget -O /tmp/docker.tgz https://download.docker.com/linux/static/stable/arm64/docker-${DOCKER_VERSION}.tgz
tar xvf /tmp/docker.tgz
cp docker/* /usr/bin/
注意:版本号不要盲抄,先访问对应目录确认文件是否存在,再替换。
5.5 启动 dockerd:处理 cgroups、存储驱动和 iptables
由于 chroot 环境里没有 systemd,需要手动启动 dockerd。但启动前最好先检查 cgroup 挂载情况。
在 chroot 环境中执行:
bash复制mkdir -p /sys/fs/cgroup
# 优先尝试 cgroup v2
mount -t cgroup2 none /sys/fs/cgroup
# 如果上面命令失败,尝试传统 cgroup v1
# mount -t cgroup none /sys/fs/cgroup
如果这些挂载都被内核拒绝,先记下来,不要着急,后面第 7 节会解释怎么处理。
然后在 chroot 里启动 dockerd:
bash复制# 在 chroot 环境内执行
nohup dockerd --storage-driver=vfs --iptables=false > /var/log/dockerd.log 2>&1 &
这里解释两个参数为什么重要:
--storage-driver=vfs:当内核不支持 overlay 文件系统时,vfs 是兜底方案。它能启动容器,性能比 overlay2 差,但至少能验证 Docker 流程是否通。如果你确定内核支持 overlay,可以去掉这个参数。--iptables=false:安卓内核裁剪 netfilter 的情况很常见,关闭 iptables 能让 daemon 先跑起来。代价是 Docker 的端口发布机制不会自动配置 NAT,容器端口映射需要手动处理。测试阶段可以接受。
启动之后,检查服务状态:
bash复制docker version
如果 Client 和 Server 的版本信息都显示出来了,说明 Docker daemon 已经启动。
再跑一个验证镜像:
bash复制docker run --rm --platform=linux/arm64 hello-world
看到标准的 Hello from Docker! 输出,Docker 就已经真正跑起来了。
6. 实际验证:Docker 跑起来后到底能做什么
跑通 hello-world 只是第一步。下面用三个最常用的服务,验证手机这台 ARM 小服务器是不是真的能干活。
6.1 部署一个 Nginx 网页服务
先创建一个测试网页目录,再用 -v 挂载到容器里:
bash复制mkdir -p ~/docker/nginx/html
cat > ~/docker/nginx/html/index.html <<EOF
<!DOCTYPE html>
<html>
<head><title>Nano Server</title></head>
<body><h1>旧安卓手机上的 Docker 服务器</h1></body>
</html>
EOF
docker run -d --name nginx-test \
-p 8080:80 \
-v ~/docker/nginx/html:/usr/share/nginx/html \
nginx:alpine
然后在电脑或同一局域网的另一台设备访问:
text复制http://手机IP:8080
如果能看到网页,说明容器网络和端口映射是通的,这是手机当服务器最基础的能力。
6.2 部署 MySQL 8.0 数据库
数据库是中间件里比较吃内存的一类服务。旧手机内存低于 2GB 时,建议优先考虑 MariaDB 或者先跑通 MySQL 的流程,但不要在大数据量场景下使用。
准备挂载目录,然后启动 MySQL 8.0:
bash复制mkdir -p ~/docker/mysql/data
docker run -d --name mysql-test \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=YourStrongPass \
-v ~/docker/mysql/data:/var/lib/mysql \
mysql:8.0
注意:YourStrongPass 一定要替换成你自己的强密码,不要用示例里的明文密码。
等待几十秒后,进入容器验证:
bash复制docker exec -it mysql-test mysql -uroot -pYourStrongPass -e "select version();"
如果能看到 MySQL 版本号,说明数据服务和容器持久化都正常。重启 docker 容器后,数据还会留在宿主机目录里。
6.3 部署 Redis 缓存服务
Redis 是轻量级服务,很适合验证 ARM 旧手机的容器性能:
bash复制docker run -d --name redis-test \
-p 6379:6379 \
redis:7-alpine
# 进入容器执行 ping,返回 PONG 说明 Redis 正常
docker exec -it redis-test redis-cli ping
6.4 查看整体运行状态
用下面的命令可以一次看到所有容器的资源占用:
bash复制docker ps -a
docker stats --no-stream
在这台旧手机上,你可以亲眼看到容器运行时的 CPU、内存、网络占用。这一步很有价值:它把“服务器”从抽象概念变成了可监控、可管理的真实系统。
7. 常见问题与排查思路
在安卓手机上跑 Docker,报错率比标准 Ubuntu 服务器高得多。遇到问题时不要慌,按下面的表格逐项排查。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
docker: Cannot connect to the Docker daemon |
dockerd 没启动,或当前用户无法访问 Docker socket | 执行 docker version 看 Server 部分是否为空;查看 /var/log/dockerd.log |
手动启动 dockerd;确认是以 root 用户执行命令 |
docker: error while loading shared libraries |
静态二进制依赖 glibc 或其他动态库,在精简 rootfs 里缺失 | 执行 ldd /usr/bin/dockerd 查看依赖 |
安装对应依赖库;优先改用 apt install docker.io |
OCI runtime create failed: container_linux.go |
内核 namespace 能力被裁剪或 runc 无法创建容器 | 查看内核配置,确认 CONFIG_NAMESPACES 是否开启 |
换内核/换系统;收窄预期,改用 proot 只跑命令行 |
iptables failed: iptables --wait -t nat |
安卓内核裁剪了 netfilter,或 iptables 不存在 | 执行 iptables -L,看是否报错 |
用 dockerd --iptables=false 先启动,测试阶段可接受 |
Error response from daemon: error creating overlay mount |
内核不支持 overlay2 存储驱动 | 执行 dmesg | tail 查看内核报错 |
启动参数加 --storage-driver=vfs |
exec format error |
镜像架构与手机架构不匹配 | 执行 uname -m;执行 docker inspect <镜像名> 查看 Architecture |
拉取 --platform=linux/arm64 的镜像;优先选 arm64v8 或 alpine 镜像 |
| 手机息屏后网络断连、服务消失 | 系统省电策略杀掉了 Termux 后台进程 | 查看手机“电池优化”和“后台行为限制”列表 | 关闭对 Termux 的电池优化;保持充电并进入开发者模式排查;用 SSH 或 ADB 长期保活服务 |
| 重启后容器全部消失 | dockerd 没有设置开机自启 | 执行 docker ps -a 查看容器其实还在,只是 daemon 没拉起来 |
想办法在开机时运行启动 dockerd 的脚本 |
如果碰到上面的表格没有覆盖的报错,第一选择永远是看日志。
bash复制tail -f /var/log/dockerd.log
Docker daemon 会把内核调用失败、存储驱动报错、网络初始化失败都写进这里。绝大多数安装问题的答案,都在日志后几十行里。
8. 工程建议:当旧手机真的变成服务器之后
如果你已经把 Docker 跑通了,先别高兴得太早。旧手机硬件不是为 7x24 小时服务器设计的,以下工程建议能帮你少踩很多坑。
8.1 供电和散热是绕不开的坎
手机电池长期满电状态,会加速老化鼓包,这是安全隐患。建议把电池取下不太现实,但至少可以考虑:设置一个充电上限,或者让手机保持低电量充电循环;如果条件允许,用拆机电池供电加散热背夹,或者干脆给手机开盖加铜片散热。
性能方面不要抱太高期待。旧手机的处理器和内存规格就在那里,跑一两个轻量服务没问题,但别指望它承载高并发流量。
8.2 网络稳定优先于性能
Wi-Fi 连接受省电策略和信道干扰影响很大。如果你打算长期稳定使用,优先考虑以下措施:
- 在路由器后台给手机分配固定 IP;
- 关闭手机对 Termux 的电池优化和后台限制;
- 有条件的话,用 Type-C 转 RJ45 有线网卡,网络稳定性会提升一个量级。
8.3 数据持久化必须显式挂载
容器是临时进程,删除重建非常频繁。任何有价值的数据都要通过 -v 参数挂载到宿主机目录。下面是一个推荐目录规划:
text复制/data/docker/containers/nginx/html
/data/docker/containers/mysql/data
/data/docker/containers/redis/data
如果数据只存在容器内部,一次 docker rm 就什么都没有了。
8.4 镜像选择要克制
ARM 旧手机的 CPU、内存都比较紧张,镜像体积和资源占用直接影响可用性。优先选择 alpine 或官方标注 arm64v8 的精简镜像。避免使用体积超过 1GB、需要大量依赖重建的镜像。
8.5 安全边界要收紧
安卓手机 Root 后,攻击面也会变大。如果 Docker 容器暴露到了局域网,一定要改默认密码、关闭不用的端口、不要用 --privileged 启动普通容器。旧手机没有专业的硬件防火墙,但只要不主动暴漏风险,作为家用实验室设备是够用的。
8.6 不要用旧手机替代生产环境
这篇文章教你把旧手机跑成 Docker 服务器,但绝不意味着它适合承载生产环境。
- eMMC/SD 卡的写入寿命远不如服务器 SSD;
- 手机系统的电源管理和内核裁剪存在太多不确定性;
- 电池供电带来的断电风险,可能直接把容器数据和 rootfs 一起“带走”。
如果确实需要一个长期稳定的小服务器,建议考虑正规的 ARM 开发板、小主机、或者云服务器。旧手机改 NAS 的价值在于低成本尝鲜和废物利用,而不是替代真正的服务器。
9. 总结与后续路径
一句话总结:旧安卓手机能不能变成真正的服务器,就看 Docker 能不能跑起来。 Docker 跑起来之前,它是网络U盘;跑起来之后,它就是 ARM 迷你 Linux 服务器。
如果你现在手里正好有一台 Root 过的旧手机,可以从下面的最小路径开始实践:
- 安装 Termux,检查架构和内核;
- 确认 Root,准备 Ubuntu rootfs;
- chroot 进入 Linux 环境,安装 docker.io;
- 启动 dockerd,跑通
hello-world; - 部署 Nginx 和 Redis,验证端口和持久化。
如果中途卡在内核或者 cgroup 报错上,不需要焦虑,这不是你的操作问题,而是设备硬件的边界。换一台设备,或者尝试刷第三方 Linux 发行版,都可能是更好的出路。
跑通 Docker 之后,后续还可以继续研究这些方向:
- 用 Docker Compose 管理多个服务,把命令收敛成
docker compose up -d; - 在容器里跑 Samba 或 MinIO,把“NAS 存储”和“服务器计算”合并到同一台设备;
- 用 Netdata 或 Prometheus 监控容器的资源消耗;
- 把旧手机变成定时任务中心,用容器跑爬虫、备份脚本、健康检查。
旧手机改 NAS 的坑很多,但只要你跨过了 Docker 这道分水岭,后面就是标准的 Linux 服务器玩法了。建议先收藏这篇,等设备准备好了再照着做。
