一条命令拉起 Android 模拟器Docker Android 从启动到接 Appium 的完整路线【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-androidDocker Android 把一台能看见屏幕、能被 adb 控制、内置 Appium 服务端的 Android 模拟器整体打包进了 Docker 镜像。免装 SDK、免配环境变量一条docker run就能在 Ubuntu 上跑起 Galaxy S10、Nexus 5 等 12 种设备配合 noVNC 还能在浏览器里直接点按这台虚拟手机适合自动化测试、CI 流水线和短信等场景的模拟。手动装环境的半天对比 docker run 的三分钟改造前给 CI 机器配一台可用的 Android 模拟器大致要这样装 Android SDK、逐条sdkmanager拉平台与系统镜像、接受一长串 license、装图形库和 VNC 服务端、再手动把 adb 端口接出来。任何一步版本对不上就要从头再来。改造后同样的环境被固化在budtmo/docker-android:emulator_11.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浏览器打开http://localhost:6080一台带完整 Android 桌面的 Galaxy S10 就摆在眼前。官方仓库里内置的设备皮肤来自 Android Studio 与三星官方素材外观基本与真机一致镜像从 Android 9.0API 28一路覆盖到 14.0API 34每个版本都有 tag需要锁定环境就选emulator_11.0_版本号这种带具体 release 的 tag。最短可跑通路径clone、启动、验证整条链路三步全部在宿主机完成。第一步获取项目源码方便对照脚本和配置git clone https://gitcode.com/GitHub_Trending/do/docker-android cd docker-android第二步用上面的docker run起容器Ubuntu 主机直接跑macOS/Windows 需要在支持嵌套虚拟化的 Ubuntu 虚拟机里执行。第三步验证模拟器是否真正启动——容器内会生成一个状态文件docker exec -it android-container cat device_status输出里设备处于运行状态就说明浏览器里看到的画面和 adb 能连上的设备是同一台。此时宿主机执行adb connect 容器IP:5555记得docker run时加-p 5555:5555你本机装的 adb 就能直接驱动容器里的模拟器装 apk、抓 log 都不必进容器。三个把效率拉满的配法让数据活过容器重启默认行为是容器重启即销毁模拟设备装过的应用全部清零。想保留状态只需把/home/androidusr挂成数据卷docker run -d -v android-data:/home/androidusr --device /dev/kvm budtmo/docker-android:emulator_11.0测试机重装应用、恢复登录态这类操作就从每次重来变成一次挂载CI 里的重复安装时间基本归零。用 noVNC 参数控制谁能看、能不能动开启WEB_VNCtrue后6080 端口的 noVNC 支持几个实用 query 参数?autoconnecttrue免点连接按钮直接进画面再加view_onlytrue可变成只读投屏适合把测试画面共享给不碰设备的同事配合-e VNC_PASSWORD还能加访问密码。看热闹的不影响干活的互不干扰。把 Appium 直接住进容器镜像基于appium/appium构建4723 端口已声明。启动时加-p 4723:4723 -e APPIUMtrueAppium 服务端与模拟器同容器共存webdriver 测试脚本在宿主机或 Jenkins 上直接指向localhost:4723即可。Appium 的额外启动参数可通过APPIUM_ADDITIONAL_ARGS透传还能挂进 Selenium Grid 4.x 统一管理。官方用例文档在 documentations/USE_CASE_APPIUM.md 里有完整示例。容易卡住的三个地方现象docker run报/dev/kvm权限错误。原因当前用户不在 kvm 组或 CPU 虚拟化根本没开。先装cpu-checker跑kvm-ok确认虚拟化可用再执行sudo usermod -a -G kvm $USER并重新登录。Windows 11 的 WSL2 用户还需在.wslconfig里打开nestedVirtualizationtrue详见 README 的 WSL2 一节。现象模拟器启动极慢、点按明显卡顿。原因默认数据分区只有 550m且模拟器的资源取决于宿主机。用-e EMULATOR_DATA_PARTITION900m加大分区宿主机侧把内存、CPU 给足模拟器对 CPU 敏感确认--device /dev/kvm真的透传成功——走软模拟时速度会差一个数量级。现象状态文件长时间不出运行中。原因设备名或镜像版本对不上。设备名必须与内置列表完全一致如Samsung Galaxy S10、Nexus 7注意大小写与空格写错时cat device_status是最快的定位手段。完整环境变量列表见 documentations/CUSTOM_CONFIGURATIONS.md。顺手一提上云与发短信这套方案上云时Azure 要选 Dv3/Ev3 系列、AWS 建议 i3.metal 裸金属、GCP 需开启嵌套虚拟化细节在 documentations/USE_CASE_CLOUD.md。日常调试里给模拟器发一条短信只需docker exec -it android-container adb emu sms send 号码 内容验证码登录、短信通知这类场景不用再掏真机一行命令即可复现。收束今晚就可以做一件事先跑kvm-ok确认虚拟化再起一个emulator_11.0容器用cat device_status确认设备在线最后挂上数据卷。这四步做完你就拥有一台随时可丢弃、随时可复现的 Android 测试机。【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考