Docker-Android 快速上手:一条命令在 Docker 容器中跑起 Android 模拟器
【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android
Docker-Android 是一个在 Docker 容器里运行 Android 模拟器的开源方案,内置 noVNC 浏览器画面、录像与 MCP server 支持。它适合 App 开发测试、UI 自动化、CI 流水线这类场景,跑起来后你得到一个能用浏览器直接操作、能用 adb 远程控制的模拟器。
前置准备:先确认两件事
- 系统已安装 Docker,并确认 CPU 硬件虚拟化已开启(可装 cpu-checker 后执行
kvm-ok检查,容器需要用到 /dev/kvm 这个内核虚拟化设备)。 - 镜像只在 Ubuntu 系宿主上运行,macOS 和 Windows 用户需先准备一台带虚拟化的 Ubuntu 虚拟机。
快速跑通:一条命令跑起模拟器 🚀
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逐个参数说明:
-d:后台运行容器。-p 6080:6080:把容器的 noVNC 网页端端口映射出来(noVNC 是把 VNC 画面转成网页的技术)。-e EMULATOR_DEVICE:指定设备型号。镜像内置 12 个设备:Samsung Galaxy S6~S10、Nexus 4/5/One/S、Nexus 7、Pixel C。-e WEB_VNC=true:启用 Web VNC,让浏览器能打开模拟器画面。--device /dev/kvm:把宿主机 KVM 虚拟化设备传进容器,缺了它模拟器会极慢甚至起不来。- 末尾镜像标签:
emulator_9.0到emulator_14.0共 6 个版本,对应 Android 9~14。
执行后在浏览器打开http://localhost:6080/?autoconnect=true,你会直接看到模拟器的系统桌面。
结构拆解:各模块负责什么
| 路径 | 职责 | 何时修改 |
|---|---|---|
| docker/ | base、emulator、genymotion 三种镜像的 Dockerfile | 想定制镜像(预装组件)时 |
| mixins/ | 设备皮肤、显示背景、supervisord 进程配置、容器入口脚本 run.sh | 换设备皮肤或调整容器内进程时 |
| cli/ | Python 命令行工具,负责启动模拟器、对接 Genymotion | 扩展自动化脚本时 |
| documentations/ | 用例文档:Appium、SMS、Jenkins、云部署等 | 深入进阶场景前先看 |
| app.sh | 镜像构建 / 测试 / 推送脚本 | 仅自维护镜像时需要 |
参数速查:常用环境变量
| 配置项 | 默认值 | 作用 | 示例 |
|---|---|---|---|
| EMULATOR_DEVICE | 无 | 指定设备型号 | "Samsung Galaxy S10" |
| WEB_VNC | 关 | 开启浏览器 VNC(端口 6080) | true |
| WEB_VNC_PORT | 6080 | 自定义 Web VNC 端口 | 6081 |
| VNC_PASSWORD | 无 | 给 VNC 连接加密码 | thisissecret |
| EMULATOR_NAME | 设备名+安卓版本 | 自定义模拟器名称 | my_emu |
| EMULATOR_DATA_PARTITION | 550m | 数据分区大小 | 900m |
| APPIUM | 关 | 容器内启动 Appium 服务(端口 4723) | true |
| WEB_LOG | 关 | 网页查看容器日志(端口 9000) | true |
数据持久化单独说:默认容器重启后模拟设备会被清空,加-v data:/home/androidusr挂卷即可保留。更多高级配置(额外模拟器参数、配置文件覆盖)入口在 documentations/CUSTOM_CONFIGURATIONS.md。
验证与避坑:确认模拟器跑起来了
验证方法有两步:
- 浏览器打开
http://localhost:6080能看到模拟器界面。 - 执行
docker exec -it android-container cat device_status查看模拟器状态。
新手最常踩的 4 个坑:
- 启动极慢或白屏:多半是 /dev/kvm 没传进容器,先用
kvm-ok确认硬件虚拟化可用。 - 重启后装好的 App 不见了:没挂数据卷,补上
-v data:/home/androidusr。 - 6080 打不开:
-p 6080:6080和-e WEB_VNC=true必须同时存在,缺一个网页端就不工作。 - 宿主机连不上 adb:容器暴露了 5555/5554 端口,映射后在宿主机执行
adb connect 容器IP:5555即可远程控制。
收尾
Docker-Android 把 Android 模拟器收敛成一条docker run,特别适合测试环境和流水线复用。下一步可以翻 documentations/ 里的 Appium UI 测试、SMS 模拟、Jenkins 集成和云部署用例,按需深入配置。
【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考