文章最后更新时间:
引出
没想到,NAS 里的 Docker,居然真的能直接跑起一个完整的安卓系统。

一开始看到这个项目的时候,我心里其实是打了个问号的,总觉得这东西大概率就是个“能跑但没法用”的玩具。

项目主页:https://github.com/budtmo/docker-android
结果真正部署完成、网页里跳出完整安卓桌面的那一刻,还是被狠狠震了一下,不是那种残缺的模拟界面,而是熟悉的安卓启动画面、桌面、设置,一整套全都在,而且体验还意外地不错。

整个系统可以直接在浏览器里操作,用鼠标滑动、点击就能完成大部分交互,配合内网穿透或者公网访问,甚至可以在外面远程操控。最关键的是,全程不需要虚拟机,不需要实体手机,一行命令就能搞定,NAS 直接原地变身“云手机”。

从实际体验来看,这套方案几乎就是原生安卓的感觉,系统自带的应用运行完全没问题,流畅度也在可接受范围内,和以前用虚拟机应用去折腾各种x86 安卓镜像相比,这种方式省心太多了,不容易遇到启动失败、兼容性翻车之类的问题,部署成功率非常高。

交互方式也是我觉得做得比较好的地方,除了常规的鼠标操作,它还提供了一些快捷操作按钮和虚拟小键盘。如果你模拟的机型本身带有实体按键,比如返回键、主页键、音量键之类的,界面里也会对应显示出来,点一下就能直接生效。网页端的 noVNC 界面做得很成熟,基本靠鼠标就能完成一整套操作流程,下拉还能看到熟悉的状态栏,用起来没有太强的割裂感。

如果你正好需要一台安卓“云手机”来跑一些特定任务,那这套方案确实值得一试。
正式部署
部署之前,先进入项目主页看一下说明,往下翻就能看到它支持的安卓版本列表,比如 9.0、10.0、14.0 等等,这些版本都是可以自己指定的。同时页面里也给出了可模拟的机型列表,也就是说,这个 Docker 容器不仅能决定跑哪个安卓版本,还能决定“这是一台什么型号的手机”。

在部署命令里,真正需要你关心和改动的地方其实就两个:安卓版本号,以及模拟的机型型号。

默认配置一般会给一个三星的机型和对应的安卓版本,如果你想换成别的版本,比如从 11 改成 9,或者直接上 14,只需要把对应位置的版本号改掉就行。
docker run -d -p 6080:6080 -e EMULATOR_DEVICE="Samsung Galaxy S10" -e WEB_VNC=true --device /dev/kvm --name android-container budtmo/docker-android:emulator_11.0

同样,如果你想把默认的机型换成其它支持的型号,只要完整复制项目里给出的型号字符串替换过去,其它参数都不用动,乱改反而容易出错。

实际测试中我发现,不同 NAS 的性能差异,对体验影响还是挺明显的,像我这边用的是 N100 平台的绿联和飞牛 NAS,多次测试下来,安卓 9.0 搭配相对老一点的机型,比如 S6 这种,整体流畅度会非常理想,日常操作几乎没有明显卡顿,如果你的 NAS 处理器性能更强,那直接用默认的机型和更高版本的安卓也完全没问题,可以根据自己的硬件情况多试几种组合,比如我使用S6机型和安卓9.0版本,那么命令如下。
docker run -d -p 6080:6080 -e EMULATOR_DEVICE="Samsung Galaxy S6" -e WEB_VNC=true --device /dev/kvm --name android-container budtmo/docker-android:emulator_9.0
部署过程本身并不复杂,无论是飞牛还是绿联,先在系统设置里把 SSH 打开,端口默认 22 就行。

然后通过 SSH 工具连接 NAS,建议使用putty,如果你的系统内置ssh,也可以使用,方法多样,putty适用于任意版本windows,通用性强,下完打开就直接用。

连接也不难,打开putty后,输入NAS的IP和SSH端口,点击Open,就连接了。

登录成功之后,login as输入NAS用户名,回车后输入密码(看不见的),回车就登录成功。

切换到管理员权限,输入sudo -i,回车,再次输入NAS登录密码就行了。

再把项目里提供的 Docker 部署命令,修改好自己要的版本,复制过来粘贴执行,镜像拉取时间一般在十分钟左右,具体看网络情况。拉取完成后,终端里出现一长串返回信息,基本就可以确定部署成功了。

众所周知的原因,docker镜像默认拉不了,这时可以加一个1ms加速,以下已提供,没法拉的朋友直接复制修改,用这个命令部署就可以了,另外,飞牛本身对 Docker 做了加速,一般不会出问题;绿联的话,在 Docker 的设置里加一下镜像加速地址,再重新部署,基本就能解决,以下命令适用于没内置加速的NAS使用。
docker run -d-p 6080:6080-e EMULATOR_DEVICE="Samsung Galaxy S10"-e WEB_VNC=true--device /dev/kvm--name android-containerdocker.1ms.run/budtmo/docker-android:emulator_11.0
容器跑起来之后,在 Docker 管理界面里可以看到它正在运行,同时会映射一个端口,默认是 6080。

直接用浏览器访问 NAS 的内网 IP 加上这个端口,就能看到安卓的画面了,第一次启动会稍微慢一点,耐心等几分钟,系统初始化完成之后就会进入桌面,如果一直卡住,那就是安卓系统版本和机型选取错误,可以直接用我前面的S6和安卓9版本先试试,基本都可以成功的。

进入系统后,你可以看到当前模拟的手机型号,和你在参数里设置的是一致的,界面右侧还有一排快捷按钮,可以直接操作音量、返回等功能,这套方案本身就是基于 noVNC 的网页交互,所以只要有浏览器,在哪都能用。如果你的 NAS 做了内网穿透或者有公网 IP,把这个端口转发出去,在外面也能随时远程连回来操作这台安卓系统。

系统默认语言是英文,不过改成中文也很简单,进设置里添加语言,把中文拖到第一位就行,切换回桌面之后,整个系统就已经是中文界面了,操作起来和真机没什么区别,整体运行也比较流畅,没有明显的卡顿现象。

如果你想更换安卓版本或者机型,重新部署也很方便,直接在 NAS 里把当前容器停止并删除,然后修改好参数,再重新执行一次命令就行。前面提到的,也就是改版本号和机型这两个地方,其它都不用动。

目前来看,这种方式跑安卓,系统自带的应用基本都可以正常使用,至于具体能拿它来跑什么任务,就看每个人的需求了,如果你已经在用类似的安卓虚拟环境,或者正打算用它来做点事情,也欢迎交流一下,你都是拿这种“云手机”来干嘛的。
NAS推荐
最后,推荐一些适合的NAS,如果是家用场景,推荐绿联、极空间NAS,主打简单、易用好上手。






![诺守博客 - 专业的网络资源分享平台![官网]](https://image.nuoso.cn/2025/12/20251205102715204.png)


暂无评论内容