在 Docker 里运行 Android 模拟器:一次跑通的实操指南
2026/9/11 16:44:55 网站建设 项目流程

在 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 UI 测试,模拟器启动要等 40 分钟,环境还和同事本机对不上。docker-android 是现成的 Android 模拟器容器镜像:一条 docker run,完整模拟器就在容器里跑起来,浏览器里直接看屏幕。不用装 SDK,不用下载系统镜像。

一句话定位:docker-android 是什么

一个把 Android 模拟器、noVNC 网页屏幕、ADB 都装进预构建镜像的项目。相比原生 Android Studio 模拟器:

  • 环境就是镜像:省掉装 SDK、下系统镜像的步骤,每台机器结果一致
  • 天然适合 CI:拉镜像、跑、销毁,不占用固定机器
  • 浏览器可访问:开一个端口就能看到模拟器画面

三步跑通第一个容器

第一步:用 kvm-ok 检查 KVM 权限

模拟器依赖硬件虚拟化,先在宿主机确认:

sudo apt install cpu-checker kvm-ok

输出 "KVM acceleration can be used" 就通过了。⚠️ 镜像只在 Ubuntu 宿主上运行,macOS/Windows 用户先准备一台 Ubuntu 虚拟机。

第二步:启动第一条 docker run

这条命令启动 Galaxy S10、Android 11 的模拟器,并在 6080 端口开放网页屏幕:

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

标签就是 Android 版本,emulator_9.0 到 emulator_14.0 可选,见 README.md。

第三步:访问验证

浏览器打开 http://localhost:6080 应该能看到模拟器界面。也可以用这条命令确认启动状态:

docker exec -it android-container cat device_status

状态显示设备启动完成后,这条链路就算跑通了。

你最常用的四个能力

浏览器打开模拟器屏幕

WEB_VNC=true启用 noVNC,宿主机不用装任何 VNC 客户端。链接后加view_only=true还能只允许观看,方便把画面分享给同事。

从宿主机 adb connect 远程控制

容器里多映射 5554、5555 两个端口,宿主机执行adb connect <容器IP>:5555后,你本地的脚本和测试框架就能直接驱动容器里的设备,详见 控制模拟器文档。

一条命令模拟短信

测应用的短信接收逻辑不用等真短信,直接用 adb 发:

docker exec -it android-container adb emu sms send 12345678 "hello"

多设备配置随参数切换

EMULATOR_DEVICE支持 Galaxy S6/S7/S8/S9/S10、Nexus 4/5/7、Nexus 7 平板和 Pixel C,换机型只改这一个参数,完整设备表在 README.md。

两个进阶工作流

接入 Appium 跑 UI 测试

需要自动化时,启动命令加 4723 端口映射和APPIUM=true

docker run -d -p 6080:6080 -p 4723:4723 -e EMULATOR_DEVICE="Samsung Galaxy S10" -e WEB_VNC=true -e APPIUM=true --device /dev/kvm --name android-container budtmo/docker-android:emulator_11.0

Appium Server 跑在容器内,额外参数经APPIUM_ADDITIONAL_ARGS透传,细节见 Appium 文档。

挂进 Jenkins 流水线

Jenkins 侧动作只有三步:拉镜像、docker run、adb connect。完整 Job 配置看 Jenkins 文档,部署到 AWS、GCP 等云上也都有现成说明。

避坑速查

  • kvm-ok提示不支持→ 依次查模块和权限:lsmod | grep kvmgroups | grep kvm,都正常再查 BIOS 虚拟化开关。KVM 权限配置基本就这一条链路
  • macOS/Windows 启动失败→ 镜像只认 Ubuntu 宿主;Windows 11 可用 WSL2 嵌套虚拟化,步骤在 README.md
  • 容器重启后数据没了→ docker run 时加-v data:/home/androidusr挂载卷,装过的应用和短信都不会丢
  • 外部 adb 连不上→ 确认映射了-p 5554:5554 -p 5555:5555
  • 不想让别人操作屏幕→ 网页链接加&view_only=true,或用VNC_PASSWORD设密码

下一步

docker-android 把容器化 Android 测试环境从搭半天变成一条 docker run:环境是镜像、屏幕在浏览器、控制走 adb。现在可以 clone https://gitcode.com/GitHub_Trending/do/docker-android ,按 README.md 里的最小示例完整跑一遍。

【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询