飞牛安装Docker版安卓手机redroid:虚拟手机+GPU硬件加速
📺 本图文教程由视频整理而成,对应的参考视频:飞牛安装docker版安卓手机redroid~虚拟手机+GPU硬件加速。如需查看更详细、更具体的操作演示,可观看原视频。
场景:redroid 是一个用 Docker 运行的安卓手机容器。它不模拟完整硬件,而是直接使用 Linux 内核,因此效率比普通模拟器/虚拟机更高。本文以飞牛系统为例,演示从驱动准备、测试运行到 GPU 硬件加速的完整流程。
第一步:下载配套文档
第二步:了解 redroid 官网与关键参数
redroid 官网(GitHub):https://github.com/remote-android/redroid-doc,用着不错记得给作者点个 Star。
官网是最详细、最权威的资料,遇到问题先来这里查:
- 镜像列表:不同安卓版本对应不同镜像。本例使用安卓 12(
12.0.0_64only-latest),作者推荐该版本、资源占用较少;设备性能强也可选更高版本(如安卓 14)。 - 关键参数:
androidboot.redroid_width/height/dpi控制分辨率与画面精细度;androidboot.redroid_gpu_mode控制显卡直通,取值auto(自动检测)、host(使用 GPU 加速)、guest(不加速,默认)。 - 前置条件:必须安装 BinderLinux(
binder_linux)驱动。
第三步:准备 BinderLinux 驱动
- 飞牛系统一般已内置该驱动,无需单独安装。
- 如果 docker 容器安装后无法运行,再到「应用中心 → 驱动 → binder_linux」单独安装即可。
注意
自行安装底层驱动存在风险。只有自己能折腾、能重装的系统(如 Ubuntu、Debian、飞牛)才建议尝试;绿联、铁威马这类成品NAS的官方系统不建议自行安装,一旦冲突可能导致设备返厂。
第四步:运行测试命令(无硬件加速)
务必先跑通测试命令,确认没问题后再考虑硬件加速版本;直接跑硬件加速版本可能导致 NAS 无响应。
打开飞牛终端,先输入 sudo -i 并回车,再输入管理员密码(输入时不显示),回车后右键粘贴下面的命令并回车:
docker run -itd --rm --privileged \
--name redroid \
-v /vol1/1000/tools/redroid/data:/data \
-p 5555:5555 \
redroid/redroid:12.0.0_64only-latest \
androidboot.redroid_width=1080 \
androidboot.redroid_height=1920 \
androidboot.redroid_dpi=480命令各参数含义:
| 参数 | 说明 |
|---|---|
docker run -d | 容器后台运行(-it 表示可交互,一般用不到) |
--rm | 容器停止后自动删除,测试阶段必须保留 |
--privileged | 赋予特权,为后续硬件加速准备 |
--name redroid | 容器名称 |
-v /vol1/1000/tools/redroid/data:/data | 数据目录映射(冒号后不可改,冒号前可自定义) |
-p 5555:5555 | 端口映射(冒号后不可改,冒号前可自定义) |
redroid/redroid:12.0.0_64only-latest | 镜像名称,换安卓版本时改这里 |
androidboot.redroid_width/height/dpi | 分辨率与 DPI,三项均可省略 |
关于 --rm
加上 --rm 后,容器一旦停止就会被自动删除,重启后不会残留。这正是测试阶段需要它的原因:万一导致 NAS 无响应,关机重启后容器自动清除,不会随系统再次启动。等到稳定运行一段时间后,才考虑去掉该参数。
第五步:确认容器正常运行
命令执行后会自动拉取镜像并创建容器。打开「Docker → 容器」,即可看到 redroid 正在运行。

第六步:用 QtScrcpy 连接安卓容器
用 QtScrcpy 连接这个安卓容器(Windows、Linux、Mac 版本界面一致,本例用 Mac 版演示)。
- 在左下角「无线」处输入 NAS 的 IP 与端口(如
192.168.31.225+5555)。端口以你实际映射的为准。 - 点击「无线连接」,上方会出现
Phone-IP:端口的设备项,双击即进入安卓桌面。 - 常用操作:鼠标左键即点击,右键即返回;右侧按钮为息屏、音量、截图等控制项。
不了解 QtScrcpy 的用法可观看参考视频:电脑操作安卓手机屏幕镜像 QtScrcpy。
第七步:观察无加速时的表现
此时 Android 容器已能正常使用,但操作会明显卡顿,因为它全靠 CPU 硬算:打开「资源管理」可以看到,无论怎么操作,CPU 占用几乎拉满(可达 90% 以上),而 GPU 始终没有任何反应。
第八步:运行硬件加速命令
硬件加速命令与测试命令整体非常接近,只在末尾新增三行参数:
docker run -itd --rm --privileged \
--name redroid \
-p 5555:5555 \
-v /vol1/1000/tools/redroid/data:/data \
--device /dev/dri:/dev/dri \
redroid/redroid:12.0.0_64only-latest \
androidboot.redroid_gpu_mode=host \
androidboot.use_memfd=1其中最关键的两行:
--device /dev/dri:/dev/dri:把宿主机的显卡驱动映射进容器(熟悉 Emby/Jellyfin 硬件加速的会认得这个参数),容器才能读取显卡驱动。androidboot.redroid_gpu_mode=host:指定使用 GPU 加速。默认guest不加速,auto为自动检测(一般仍是guest),host才会真正调用 GPU。
androidboot.use_memfd=1 是共享内存相关的可选参数,用于提升稳定性与兼容性,建议一并加上。
注意
如果运行硬件加速命令后 NAS 直接失联(网页与 SSH 都无法连接),必须手动按下设备关机键关机,再重启 NAS 才能恢复。这种情况说明该硬件加速参数不适合你的设备,请直接使用上面的无加速命令。
第九步:确认 GPU 加速效果
重新用 QtScrcpy 连接容器,再次打开「资源管理」并操作安卓页面(如滚动网页),可以看到 GPU 占用升到 80% 左右,而 CPU 明显下降(从 90% 降到 40%~50%)。这是因为页面渲染改由 GPU 承担,整体操作也随之流畅许多,接近本地操作体验。

第十步:基本操作——设置中文与安装 APK
设置语言:按住鼠标左键上滑 → 「设置(Setting)」→ 滑到底部「系统(System)」→「语言」→ 添加语言 → 选「简体中文」并选「中国」→ 把中文拖到第一位,界面即变为中文。
安装程序:直接把 .apk 文件拖拽进容器窗口,出现绿色加号后松手即可自动安装,随后上滑即可看到新装的图标并打开使用。
第十一步:稳定后去掉 --rm 参数(可选)
先用 --rm 跑几天,确认 NAS 稳定不出问题后,把容器停掉(此时容器会自动删除),去掉 --rm 并加上 --restart=unless-stopped,重新执行:
docker run -itd --privileged \
--restart=unless-stopped \
--name redroid \
-p 5555:5555 \
-v /vol1/1000/tools/redroid/data:/data \
--device /dev/dri:/dev/dri \
redroid/redroid:12.0.0_64only-latest \
androidboot.redroid_gpu_mode=host \
androidboot.use_memfd=1这样容器停止后不再被删除,之后点「启动」即可恢复,与普通容器用法一致。
总结
- redroid 直接使用 Linux 内核运行安卓容器,效率高于普通模拟器/虚拟机,但前置条件是安装
binder_linux驱动(飞牛已内置)。 - 命令分两步走:先跑通测试命令(
--rm、无加速、端口5555),确认无误再跑硬件加速命令。 - 硬件加速的核心是两行参数:
--device /dev/dri:/dev/dri与androidboot.redroid_gpu_mode=host,androidboot.use_memfd=1用于增强稳定性。 --rm是测试期的“安全绳”,容器停止即删除、重启不残留;确认稳定后再去掉,并改用--restart=unless-stopped。- 硬件加速命令若导致 NAS 失联,手动关机重启后改用无加速命令即可。