3 步在 Docker 容器里跑起 Android 模拟器:docker-android 完整上手
发布时间:2026/9/11 15:40:08 锦皓数字建站

3 步在 Docker 容器里跑起 Android 模拟器docker-android 完整上手【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-androidCI 流水线又红了报错第一行是“emulator not found”。你重装了一下午 SDK第二天照样翻车。docker-android 把完整的 Android 模拟器装进 Docker 镜像一条docker run就能拿到可用的 Android 容器屏幕浏览器里就能看adb 远程就能控。项目速览Docker-Android 是把完整 Android 模拟器装进容器的镜像集合覆盖 Android 9.0 到 14.0 共 6 个镜像版本内置 12 种设备配置另有 Genymotion 云版镜像。设备列表覆盖 Samsung Galaxy S6 到 S10、Nexus One 到 Nexus 7 全系外加 Pixel C 平板。Appium UI 测试、短信模拟、Android 项目构建、云端部署都在容器里完成。镜像标签分两种按 Android 版本的emulator_11.0和锁定发布号的emulator_11.0_v2.0。CI 里锁死版本号同一天拉起的容器永远一样。内置 noVNC 让模拟器屏幕直接在浏览器打开不用装 VNC 客户端。上图是容器里的 Samsung Galaxy S6 模拟器收到一条模拟短信全程在浏览器中可见。5 分钟跑起来 宿主机需要是 UbuntumacOS / Windows 先用 Ubuntu 虚拟机并装好 Docker。验证 KVM 虚拟化。sudo apt install cpu-checker kvm-ok成功标志输出包含KVM acceleration can be used。启动 Android 11 容器。默认设备是 S10可选把标签换成emulator_9.0到emulator_14.0的其他版本。docker run -d -p 6080:6080 \ -e EMULATOR_DEVICESamsung Galaxy S10 \ -e WEB_VNCtrue \ --device /dev/kvm \ --name android-container \ budtmo/docker-android:emulator_11.0成功标志docker ps里容器状态为Up。浏览器打开容器屏幕。 访问http://localhost:6080模拟器桌面加载出来。成功标志能看到 S10 桌面图标可点击。确认模拟器启动状态。docker exec -it android-container cat device_status成功标志状态文件显示启动完成、无报错。整个过程一般几分钟首次开机最慢。能力拆解浏览器可视化监控不装 VNC 客户端6080 端口的 noVNC 网页直接看容器内屏幕URL 参数控制行为。开发者和 CI 维护者用得最多测试挂了不用 ssh 上机器就能看到现场。只读监控http://localhost:6080/?autoconnecttrueview_onlytrue加密码连接同一链接追加passwordxxx外部 adb 远程控制复用宿主机工具链映射 5554 和 5555 两个端口宿主机的 adb 就能操控容器里的模拟器。想在本机跑自动化脚本、装包走这条路测试代码不用塞进容器。一行连接adb connect 容器IP:5555日志共享上网页告别翻docker logsWEB_LOGtrue后容器日志可以在网页端查看默认 9000 端口。排查问题时把日志链接发给同事不用挤在同一台机器前。接入 Genymotion 云跳过 KVM 硬件限制budtmo/docker-android:genymotion镜像能从 Genymotion SaaS 或 AWS 拉虚拟设备设备会自动用 adb 连进容器。没有 KVM 资源、或需要更多设备型号的人走这条路。一行启动-e DEVICE_TYPEgeny_saas -e GENY_AUTH_TOKENxxx实战3 个典型用法挂上 Appium 跑自动化测试场景UI 回归测试不依赖本地环境每次都是全新容器。docker run -d -p 6080:6080 -p 4723:4723 \ -e EMULATOR_DEVICESamsung Galaxy S10 \ -e WEB_VNCtrue -e APPIUMtrue \ --device /dev/kvm --name android-container \ budtmo/docker-android:emulator_11.0预期效果Appium Server 监听 4723测试脚本照常发起。想给 Appium 多传参数用APPIUM_ADDITIONAL_ARGS。模拟一条短信进来场景测应用的短信验证码处理逻辑不需要真机。docker exec -it android-container adb emu sms send 12345678 测试消息预期效果模拟器信息应用里出现这条消息noVNC 网页里直接可见。在容器里构建 Android 项目场景构建环境和测试环境用同一个镜像避免“本地能跑、CI 不行”的版本错位。docker run -it --rm \ -v $PWD/your-project:/home/androidusr/tmp \ -w /home/androidusr/tmp \ --entrypoint /bin/bash \ budtmo/docker-android:emulator_11.0 \ -c ./gradlew build预期效果构建直接在容器内完成本地不用装 Android SDK单元测试同样可以跑。进阶与调优 EMULATOR_DEVICE设备配置Samsung Galaxy S10、Nexus 7 等 12 种EMULATOR_NAME自定义模拟器名称EMULATOR_DATA_PARTITION数据分区大小默认550mEMULATOR_NO_SKIN不加载设备皮肤省一点渲染开销EMULATOR_ADDITIONAL_ARGS透传任意参数给 android emulatorEMULATOR_CONFIG_PATH挂载自定义模拟器配置文件进容器APPIUM_ADDITIONAL_ARGSAppium Server 的额外 CLI 参数VNC_PASSWORD给 VNC 连接加密码WEB_VNC_PORT/WEB_LOG_PORT改网页端口默认 6080 / 9000-v data:/home/androidusr持久化模拟器数据默认容器重启即销毁遇到这些不用慌kvm-ok报 KVM 不可用先lsmod | grep kvm查模块再groups | grep kvm查用户组。Windows 11 WSL2 场景还要设nestedVirtualizationtrue。浏览器打开是白页检查是否带了-p 6080:6080和-e WEB_VNCtrue再试http://localhost:6080/?autoconnecttrue。非 Ubuntu 主机起不了模拟器镜像只支持 Ubuntu 宿主macOS / Windows 先准备一台 Ubuntu 虚拟机。现在就可以拉个镜像把容器跑起来把测试脚本指向 4723。配置项的完整清单见自定义配置Appium 细节见Appium 用例。【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。