Docker-Android 容器化 Android 模拟器完全指南一、概述1. 简介A. 是什么Docker-Android 是一个将 Android 模拟器容器化的开源解决方案，支持通过 noVNC 在浏览器中访问和控制 Android 设备。该项目提供了完整的 Docker 镜像，可用于应用开发、测试和自动化场景。B. 为什么选择传统的 Android 开发和测试面临以下问题：需要在本地安装 Android SDK 和模拟器模拟器占用大量系统资源CI/CD 环境中难以集成图形化测试多设备测试需要多台物理设备Docker-Android 通过容器化技术解决了这些问题：开发环境隔离，不影响主机系统支持并行运行多个模拟器实例可轻松集成到 Jenkins 等 CI/CD 流程通过 noVNC 实现远程访问C. 可以做什么应用程序开发和测试（原生、Web 和混合应用）使用 Appium、Espresso 等框架进行 UI 自动化测试构建 Android 项目通过 ADB 连接从容器外部控制模拟器部署到云平台（AWS、GCP、Azure）与 Genymotion Cloud 集成2. 项目数据GitHub Stars：14.3k+Fork 数量：1.6k+贡献者：52 人支持语言：Python 92.1%、Shell 7.9%最新版本：v3.2.0-p0（2026 年 1 月发布）二、支持的 Android 版本1. Docker 镜像列表Android 版本API 级别最新版本镜像指定版本镜像9.028budtmo/docker-android:emulator_9.0budtmo/docker-android:emulator_9.0_<version>10.029budtmo/docker-android:emulator_10.0budtmo/docker-android:emulator_10.0_<version>11.030budtmo/docker-android:emulator_11.0budtmo/docker-android:emulator_11.0_<version>12.032budtmo/docker-android:emulator_12.0budtmo/docker-android:emulator_12.0_<version>13.033budtmo/docker-android:emulator_13.0budtmo/docker-android:emulator_13.0_<version>14.034budtmo/docker-android:emulator_14.0budtmo/docker-android:emulator_14.0_<version>--budtmo/docker-android:genymotionbudtmo/docker-android:genymotion_<version>2. 支持的设备型号A. 手机设备Samsung Galaxy S10Samsung Galaxy S9Samsung Galaxy S8Samsung Galaxy S7 EdgeSamsung Galaxy S7Samsung Galaxy S6Nexus 4Nexus 5Nexus OneNexus SB. 平板设备Nexus 7Pixel C三、系统要求1. 硬件要求支持 KVM 虚拟化足够的内存（建议每个模拟器实例至少 2GB）足够的磁盘空间（每个镜像约 5-10GB）2. 软件要求A. 操作系统Ubuntu Linux（原生支持）macOS/Windows：需要运行支持虚拟化的 Ubuntu 虚拟机B. 虚拟化检查# 安装虚拟化检查工具 sudo apt install cpu-checker kvm-ok # 检查 KVM 是否启用 kvm-ok四、快速开始1. 基本使用graph LR A[宿主机] -->|Docker run| B[容器] B -->|KVM加速| C[Android模拟器] B -->|noVNC| D[浏览器] E[ADB客户端] -->|adb connect| BA. 启动容器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：启用 Web VNC 访问--device /dev/kvm：传递 KVM 设备以启用硬件加速B. 访问模拟器打开浏览器访问 http://localhost:6080，即可看到 Android 模拟器界面。C. 检查状态docker exec -it android-container cat device_status2. 数据持久化默认情况下，容器重启会销毁模拟器数据。要持久化数据，需要挂载卷：docker run -d \ -p 6080:6080 \ -e EMULATOR_DEVICE="Samsung Galaxy S10" \ -e WEB_VNC=true \ --device /dev/kvm \ -v data:/home/androidusr \ --name android-container \ budtmo/docker-android:emulator_11.03. WSL2 硬件加速（Windows 11）sequenceDiagram participant U as 用户 participant W as WSL2 participant D as Docker participant A as Android容器 U->>W: 1. 添加用户到 kvm 组 U->>W: 2. 配置 /etc/wsl.conf U->>W: 3. 配置 .wslconfig U->>W: 4. 重启 WSL2 W->>D: 5. 启动 Docker D->>A: 6. 运行容器（带KVM）A. 配置步骤步骤 1：添加用户到 kvm 组sudo usermod -a -G kvm ${USER}步骤 2：配置 /etc/wsl.confsudo nano /etc/wsl.conf添加以下内容：[boot] command = /bin/bash -c 'chown -v root:kvm /dev/kvm && chmod 660 /dev/kvm'步骤 3：配置 .wslconfig在 Windows PowerShell 中执行：notepad $env:USERPROFILE\.wslconfig添加以下内容：[wsl2] nestedVirtualization=true步骤 4：重启 WSL2wsl --shutdown五、使用场景1. 应用程序测试A. Appium UI 测试Docker-Android 可以与 Appium 集成，实现移动应用的自动化 UI 测试。支持：自动安装 APK元素定位和交互截图和录制并行测试B. Espresso 测试支持运行 Android Espresso 单元测试和 UI 测试。2. CI/CD 集成A. Jenkins 集成可以在 Jenkins Pipeline 中启动 Docker-Android 容器，运行测试后自动销毁。B. 云平台部署支持部署到：AWS（Amazon Web Services）GCP（Google Cloud Platform）Azure阿里云3. ADB 远程控制可以从宿主机或其他网络位置通过 ADB 连接到容器中的模拟器：# 获取容器 IP docker inspect android-container | grep IPAddress # 通过 ADB 连接 adb connect <容器_IP>:55554. 日志共享支持通过 Web UI 访问所有系统日志，方便调试和分析。5. Genymotion 集成对于没有资源维护模拟器或需要购买设备的场景，可以使用 Genymotion SAAS 服务。Docker-Android 已与 Genymotion 集成，支持在多个云服务上运行。六、高级配置1. 环境变量项目支持多种环境变量进行自定义配置：变量名说明默认值EMULATOR_DEVICE设备型号-WEB_VNC启用 Web VNCfalseEMULATOR_API_LEVELAndroid API 级别-更多配置选项请参考项目的 CUSTOM_CONFIGURATIONS.md 文档。2. 多容器运行可以同时运行多个不同版本的 Android 容器：# Android 11.0 docker run -d -p 6080:6080 --name android-11 budtmo/docker-android:emulator_11.0 # Android 12.0 docker run -d -p 6081:6080 --name android-12 budtmo/docker-android:emulator_12.0 # Android 13.0 docker run -d -p 6082:6080 --name android-13 budtmo/docker-android:emulator_13.0七、Pro 版本项目提供了基于赞助的 Pro 版本，包含更多高级功能：1. 功能对比功能标准版Pro 版用户行为分析是否代理支持否是语言设置否是更新 Android 版本否是（Android 15、16 等）Root 权限否是无头模式否是Selenium 4.x 集成否是多模拟器单容器否是（即将推出）Google Play Store否是（即将推出）视频录制否是（即将推出）2. 获取方式Pro 版本仅供活跃赞助者使用。访问 GitHub Sponsors 页面成为赞助者后，即可拉取 Pro 版本的 Docker 镜像。八、故障排查1. 虚拟化未启用如果遇到虚拟化相关的错误：# 检查 KVM 状态 kvm-ok # 如果报告 KVM 未启用，需要在 BIOS 中启用 VT-x/AMD-V2. 容器启动失败检查以下几点：确保传递了 /dev/kvm 设备检查端口是否被占用查看容器日志docker logs android-container3. 性能问题确保 KVM 硬件加速已启用为容器分配足够的内存使用无头模式（Pro 版本）九、项目生态1. 相关项目docker-android-pro：高级功能版本docker-android-cli：命令行工具2. 社区支持GitHub Issues：问题报告和功能请求Gitter：实时聊天和讨论贡献指南：欢迎提交 PR十、总结Docker-Android 是一个功能强大的 Android 容器化解决方案，特别适合以下场景：自动化测试环境CI/CD 流程集成多设备并行测试云端设备农场通过结合 Docker 和 Android 模拟器，该项目为移动开发和测试提供了灵活、可扩展的基础设施。参考资料Docker-Android GitHub RepositoryDocker-Android DocumentationGenymotion Cloud