Docker-Android 快速上手指南:一条命令容器化运行 Android 模拟器
【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android
Docker-Android 把 Android 模拟器装进 Docker 镜像,内置 noVNC 浏览器访问,覆盖 Android 9.0~14.0 共 12 个版本镜像和多款 Samsung/Nexus 设备画像。拉取镜像即跑,不用本地装模拟器,适合自动化测试和远程调试场景。
🖥️ 你会在哪些场景用到它
- CI 自动化测试:流水线里临时拉起一个 Android 环境跑 Appium UI 测试,跑完即销毁,参考 documentations/USE_CASE_APPIUM.md。
- 远程查看与操作:不装 Android Studio,用浏览器直接看到模拟器画面并交互,适合 DevOps 和外包协作。
- 短信与构建等专项需求:一条
adb emu sms send就能给容器内模拟器发验证码短信,也可以拿它编译 Android 工程,详见 documentations/USE_CASE_SMS.md。
能力速览:需求怎么对应到功能
| 你想做什么 | 项目如何实现 |
|---|---|
| 浏览器里看模拟器画面 | 镜像内置 noVNC,映射 6080 端口后打开即用 |
| 选 Android 版本 | 镜像 tag 按版本切分,如emulator_11.0对应 Android 11,最高到emulator_14.0 |
| 选设备型号 | EMULATOR_DEVICE环境变量,支持 S6~S10、Nexus 4/5/One/S、Nexus 7 等 12 款 |
| 用宿主机 adb 操控 | 映射 5554/5555 端口后adb connect容器 IP,见 documentations/USE_CASE_CONTROL_EMULATOR.md |
| 模拟接收短信 | docker exec -it 容器 adb emu sms send <号码> <内容> |
| 重启后保留数据 | 卷挂载到/home/androidusr |
| 自定义行为(日志共享、代理等) | 环境变量配置,清单在 documentations/CUSTOM_CONFIGURATIONS.md,变量定义可查 cli/src/constants/ENV.py |
部署前环境检查清单
镜像只跑在 Ubuntu 上,macOS/Windows 用户需要先准备一台带虚拟化的 Ubuntu 虚拟机。逐项验证:
- Docker 已安装:
docker version,能同时输出 Client 和 Server 版本号即通过。 - CPU 虚拟化已开启:
sudo apt install cpu-checker && kvm-ok,输出KVM acceleration can be used即通过。 - /dev/kvm 设备存在:
ls -l /dev/kvm,能看到该设备文件即通过。 - 宿主机为 Ubuntu(或 Win11 的 WSL2 已开启
nestedVirtualization=true嵌套虚拟化),否则容器内模拟器只能软模拟,慢到不可用。
快速部署:最短可用命令
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| 参数 | 说明 |
|---|---|
-p 6080:6080 | 映射 noVNC 端口,宿主机浏览器入口 |
-e EMULATOR_DEVICE | 设备画像,不指定用默认机型 |
-e WEB_VNC=true | 开启网页访问模拟器画面 |
--device /dev/kvm | 把 KVM 设备传入容器,获得硬件加速 |
--name android-container | 容器命名,方便后续 exec 调试 |
emulator_11.0 | 镜像 tag,按所需版本换成emulator_9.0~emulator_14.0 |
镜像内部结构(系统镜像安装、noVNC 部署)在 docker/emulator 的 Dockerfile 里,想改默认分辨率、浏览器等可以顺着看。
验证是否启动成功
- 看浏览器:打开
http://localhost:6080,能看到 noVNC 页面和模拟器开机过程(首次冷启动约需 1~2 分钟,屏幕黑一阵属正常)。 - 查状态文件:容器内写有状态标记,一条命令确认:
docker exec -it android-container cat device_status输出显示模拟器运行中,即部署成功。
⚠️ 常见问题:现象 → 原因 → 解法
- 现象:模拟器极卡、卡在开机动画。原因:
/dev/kvm没生效,走了纯软件模拟。解法:进 BIOS 开启 Intel VT-x / AMD-V,重新跑kvm-ok确认;Win11 用户还要按 README 的 WSL2 步骤给/dev/kvm改属组并开启嵌套虚拟化。 - 现象:6080 页面一直黑屏。原因:模拟器系统尚未启动完成,或
WEB_VNC没开。解法:等 1~2 分钟刷新页面;仍不行则检查启动命令里是否有-e WEB_VNC=true。 - 现象:容器一重启,装好的 App 全没了。原因:默认行为是重启即重建模拟设备。解法:启动时加
-v data:/home/androidusr持久化数据卷。
📊 小结
先按检查清单把 KVM 跑通,再部署emulator_11.0验证浏览器访问。之后按需查阅documentations/目录下的 Appium 测试、宿主机 adb 操控、Jenkins 集成等文档,把模拟器接进你的流水线。
【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考