docker-android:5分钟跑通Docker Android模拟器
【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android
凌晨两点,CI流水线又卡住了——三台物理测试机全被占满,新同事手搓Android模拟器的环境也挂了两天。这时候你需要的是一套Docker Android模拟器方案,而不是再找一台机器:docker-android 把整套Android模拟器塞进Docker容器里,一条命令就能给你一台用完即弃、浏览器直接能看的测试机。
它替你做了什么
省掉手搓模拟器的环节。SDK、系统镜像、硬件配置、皮肤素材,全部提前烤进镜像里,拉下来就能用。tag 对应 Android 版本,emulator_11.0 就是 Android 11,要做兼容对比,9.0、14.0 也都有现成的。
屏幕直接在浏览器里打开。容器里预配了 noVNC(一种让你用浏览器查看容器内画面的远程屏幕协议),开着 6080 端口,你在宿主机浏览器里就能看到模拟器在干什么,不用再开虚拟机挂远程桌面。
宿主机能直接遥控。模拟器不是被锁死在容器里的。把 5555 端口暴露出来,在宿主机执行 adb connect(adb 是 Android 官方调试命令行工具),你本地的 Appium、Jenkins 这些自动化框架就能把它当成本地设备控制,这就是做容器化 Android 测试的基础。
换机型只改一个环境变量。三星 Galaxy S6 到 S10、Nexus 4/5/7、Pixel C,一共 12 款机型,改一下 EMULATOR_DEVICE 的值就能切换形态,不用自己找皮肤和 profile。
跑通它只需要这几步
开始前只需两样:✅ 装好 Docker ✅ 宿主机是 Ubuntu(或用 Ubuntu 虚拟机)。
确认可用硬件加速
模拟器快不快,全看 KVM(Linux 内核的硬件虚拟化模块,/dev/kvm 是它的入口)在不在。在宿主机跑一条:
sudo apt install cpu-checker && kvm-ok显示 "KVM acceleration can be used" 就能往下走。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--device /dev/kvm 是把硬件加速带进容器,这行别省,省了速度能慢一个量级。
打开画面,确认状态
浏览器访问 http://localhost:6080,模拟器画面就出来了。想确认系统起没起完,再补一句:
docker exec -it android-container cat device_status首次启动要等一两分钟,稍后刷新就能看到桌面。
几个容易踩的坑
容器启动报 /dev/kvm 权限拒绝——当前用户不在 kvm 组里,是权限问题,不是没装加速。跑sudo usermod -a -G kvm $USER,重新登录后再启动即可。
macOS 或 Windows 宿主机上跑不起来——镜像只支持 Ubuntu 宿主环境。Windows 11 可以折腾 WSL2:开启嵌套虚拟化、配置 kvm 权限,但 WSL 版本太老的话效果打折,细节见 README。
容器一重启,装好的应用和数据全没了——默认行为就是容器重启时丢弃模拟设备,为了保持环境干净。想保留已装应用,启动时把数据卷挂到 /home/androidusr:
docker run -v data:/home/androidusr budtmo/docker-android:emulator_11.0把效率再拉一档
接进 CI 流水线。Jenkins、Appium 的用法文档里都写了:流水线里多一条 docker run,测完删容器,环境随走随到、不留残局。
多版本并行对比。同一个镜像开多个实例,各自占一个端口:6080 跑 9.0,6081 跑 14.0,同一套用例并着跑,报告出来就是版本对比。
不止是测试。还能模拟发短信、录屏排障,甚至接 Genymotion 云环境。更多开关看 CUSTOM_CONFIGURATIONS.md。
凌晨两点卡流水线这种事,以后不会再有了。下次要测试机,把那行 docker run 敲下去,等 6080 亮起来就行。想换机型或 tag,翻一下 README 里的机型列表 再选。
【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考