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 在浏览器中实时查看模拟器画面。它适合需要 Android 环境的开发者和测试人员:不用买真机、不用专门配测试机,就能搭环境、跑 Appium UI-Test、构建 Android 项目或远程复现线上问题。
谁需要它 / 典型使用场景
如果你正在做 Android 自动化测试,又不想在每台机器上手动装模拟器,这个项目能帮你一键把整套环境装进容器。通过切换镜像标签就能使用 Android 9.0~14.0,设备轮廓涵盖 Samsung Galaxy S10、S9、S8、Nexus 7、Pixel C 等十余款机型。它还支持模拟短信收发这类测试场景:
🔍 跑起来之前,先过这几关
Docker 已安装:
docker --version有输出即可。KVM 虚拟化可用:镜像跑在 Ubuntu 上且依赖硬件加速,先校验一下:
sudo apt install cpu-checker && kvm-ok输出
KVM acceleration can be used才算过关。宿主系统:Ubuntu 最省事;macOS 需要装支持虚拟化的 Ubuntu 虚拟机;Windows 11 可用 WSL2,但要在配置里开启
nestedVirtualization=true。/dev/kvm设备存在:ls -l /dev/kvm能列出该文件就没问题,否则容器里的模拟器会慢得像幻灯片。
🚀 核心命令拆解
先直接跑这条完整命令,以 Android 11 为例:
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 的 Web 端口映射到本机 |
-e EMULATOR_DEVICE="Samsung Galaxy S10" | 选设备轮廓,换成Nexus 7就是平板 |
-e WEB_VNC=true | 开启浏览器访问,不开就只能用 VNC 客户端连 |
--device /dev/kvm | 把宿主机的硬件虚拟化设备挂进容器,模拟器速度的关键 |
--name android-container | 给容器起名,后面管理方便 |
budtmo/docker-android:emulator_11.0 | 镜像标签,emulator_9.0~emulator_14.0对应不同 Android 版本 |
跑完之后打开浏览器访问http://localhost:6080,就能看到模拟器的实时画面。想顺带接 Appium 的话,加-p 4723:4723 -e APPIUM=true两个参数即可,细节见 Appium UI-Test 用法。
验证 & 日常操作
# 看模拟器启动到哪一步了,卡在 booting 超过几分钟时用它 docker exec -it android-container cat device_status # 容器日志,排查启动失败、VNC 连不上的首选 docker logs -f android-container # 容器停了直接拉起来,不用重新 run docker start android-container如果想像平时那样用 adb 直接操控容器里的模拟器,启动时追加-p 5554:5554 -p 5555:5555,然后在本机执行adb connect 127.0.0.1:5555,流程可参考 从宿主机控制模拟器。
💾 数据持久化(可选但推荐)
默认情况下容器一重启,模拟器设备就会重置回出厂状态。想让装过的 App、账号数据跨重启保留,把卷挂到/home/androidusr就行:
docker run -d -v data:/home/androidusr ... budtmo/docker-android:emulator_11.0不加这个-v参数,容器一删,设备里的数据就跟着没了。
跑通之后,下一步建议接上 Appium 写第一条 UI-Test 脚本,或翻一遍 环境变量配置清单:VNC 密码、日志 Web 页面、模拟器数据分区大小等都在这里调。想要云端模拟器设备,还可以看看 Genymotion 云集成方案(见仓库 documentations 目录,以仓库实际为准)。
【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考