前言
Docker-Android 是把安卓模拟器装进容器的工具,能快速搭建统一的测试环境,适合移动开发、测试团队解决 '换台电脑就跑不起来' 的问题,优点是环境隔离性好,版本切换方便,还能节省本地配置时间。
实际使用时,建议选择适合项目的安卓版本,过高版本可能占用较多资源,导致模拟器卡顿;另外,启动容器时要确保 KVM 虚拟化开启,否则模拟器无法运行。
但它默认只能在本地局域网使用,这对远程协作很不友好。比如外包测试人员在外地,想要连接公司内部的模拟器测试 App 兼容性,要么需要复杂的 VPN 配置,要么就得来回传递安装包,测试反馈慢,还容易出现环境差异。
而 Docker-Android 与 cpolar 结合后,可以把本地模拟器的端口映射到公网,远程团队通过浏览器或 ADB 工具就能直接连接,调试体验和本地一样流畅,省去了环境同步的麻烦,提升了跨设备、跨地域的测试效率。
本文主要介绍如何在 Ubuntu 系统使用 Docker 部署 docker-android 安卓模拟器,并结合 cpolar 内网穿透工具实现公网远程访问本地部署的 Android 开发环境。
根据官方建议,尽量采用 Ubuntu 系统进行安装,使用 Docker 部署。首先设备需要提前安装好 Docker,如果没有安装,可以参考 Docker 官方安装教程。
1. 虚拟化环境检查
执行以下命令安装检查工具:
sudo apt install cpu-checker
然后执行以下命令检查是否支持虚拟化:
kvm-ok
提示类似如下信息表示正常支持虚拟化环境。如果未显示相关信息,请确认设备开启了虚拟化支持后再继续后续步骤。

2. Android 模拟器部署
本文采用 Docker 方式部署,首先拉取一个镜像。官方提供了多种安卓版本,具体可以访问 GitHub 查看:https://github.com/budtmo/docker-android。理论上版本越高运行开销越大,因此本例以运行一个较低版本的 Android 来演示。执行以下命令拉取 Android 9.0 版本镜像:
sudo docker pull budtmo/docker-android:emulator_9.0
拉取完成后开始运行容器。以下命令用于运行一台 Samsung Galaxy S7 的安卓设备,其他机型可参考官方文档。对外访问端口为 6080:
docker run -d -p 6080:6080 -e EMULATOR_DEVICE="Samsung Galaxy S7" -e WEB_VNC=true --device /dev/kvm --name android-container budtmo/docker-android:emulator_9.0
运行后,输入 sudo docker ps 可查看正在运行的容器,UP 状态表示正常:














