docker-android

budtmo活跃维护

在 Docker 里跑 Android 模拟器,支持 noVNC 网页操作、录屏和 MCP 服务,方便在 CI 或云端做自动化测试与 AI 代理控制。

Android in docker solution with noVNC supported, video recording, mcp server and AI-agent

v3.9.0-p1发布于 2026-10-27 13:19 UTC16,110star +10 / 7 天1,784fork同步于 2026-11-10 05:26 UTC

怎么上手

由 README 提炼,执行前请确认
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
硬件要求按 README 说明

需要宿主机支持虚拟化并挂载 /dev/kvm;镜像只能在 Ubuntu 系统下运行,OSX 和 Windows 用户需先准备支持虚拟化的 Ubuntu 虚拟机,Windows 11 可用 WSL2 嵌套虚拟化。README 未说明显存要求。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

在 Docker 里跑 Android 模拟器,带 VNC 可视化,用于 App 开发与自动化测试

在 Docker 里跑 Android 模拟器,支持 noVNC 网页操作、录屏和 MCP 服务,方便在 CI 或云端做自动化测试与 AI 代理控制。

核心能力

  • 用 noVNC 在浏览器查看容器内模拟器画面
  • 通过 adb connect 从容器外控制模拟器
  • 内置 Appium、Espresso 等 UI 测试框架支持
  • 提供 MCP Server 与 AI-Agent 接入本地 LLM
  • 支持多种设备型号与皮肤,如 Galaxy S10、Nexus 7

容易踩的坑

镜像只能在 Ubuntu 宿主机上运行,OSX 和 Windows 需先准备 Ubuntu 虚拟机;容器重启默认销毁模拟器数据,需挂载 /home/androidusr 卷才能持久化;AI-Agent、视频录制、headless 等能力属于 Pro 版,普通版镜像不含。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v3.9.0-p1
  1. v3.9.0-p1最新正式版2026-10-27 · 2026-10-27 13:19 UTC

    Changes:

    • Using the latest base image v3.9.0-p1
    • Bump coverage to version 7.17.0
    • Bump fastmcp to version 4.1.3
    • Bump python to version 3.15.0
    • Bump setuptools to version 84.2.1
  2. v3.8.0-p12026-10-09 · 2026-10-09 08:13 UTC
    查看更新说明

    Changes:

    • Using the latest base image v3.8.0-p0
    • Restructured the docker-folder for dependabot
    • Bump fastmcp to version 4.0.11
    • Bump coverage to version 7.16.2
    • Supported vllm
  3. v3.7.0-p12026-09-18 · 2026-09-18 07:12 UTC
    查看更新说明

    Changes:

    • Using the latest base image v3.7.0-p0
    • Fix: preserve spaces (issue #430 ), credits @Iams4kura
    • Bump coverage to version 7.16.1
  4. v3.7.0-p02026-09-01 · 2026-09-01 12:11 UTC
    查看更新说明

    Changes:

    • Using the latest base image v3.7.0-p0
    • Bump coverage to version 7.16.0
    • Bump click to version 8.5.0
    • Bump setuptools to version 84.0.0
    • Bump Ubuntu OS on github action to version 26.04
    • Added MCP-Server (beta-version)
  5. v3.6.0-p02026-08-04 · 2026-08-04 12:58 UTC
    查看更新说明

    Changes:

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Paypal Donate PRs Welcome codecov Join the chat at https://gitter.im/budtmo/docker-android GitHub release

    Docker-Android is a docker image built to be used for everything related to Android. It can be used for Application development and testing (native, web and hybrid-app).

    Sponsors

    Proxy-Seller gives you reliable proxy infrastructure for any workflow: private residential, mobile (4G/5G/LTE), ISP, and datacenter IPv4/IPv6 proxies, all with HTTP(S) and SOCKS5 support. Tap into 47M+ residential IPs across 220+ locations, target exactly the country, city, or ISP you need, and count on 99.7% uptime backed by 24/7 support. Get 15% off with promo code BUDTMO.

    Advantages of using this project

    1. Emulator with different device profile and skins, such as Samsung Galaxy S6, LG Nexus 4, HTC Nexus One and more.
    2. Support vnc to be able to see what happen inside docker container
    3. Support log sharing feature where all logs can be accessed from web-UI
    4. Ability to control emulator from outside container by using adb connect
    5. Integrated with other cloud solutions, e.g. Genymotion Cloud
    6. It can be used to build Android project
    7. It can be used to run unit and UI-Test with different test-frameworks, e.g. Appium, Espresso, etc.
    8. It support (http) docker-android MCP-Server (beta-version)
    9. It support Appium MCP
    10. It support AI-Agent (beta-version) - supported local-LLM server: Ollama, VLLM

    List of Docker-Images

    AndroidAPIImage with latest release versionImage with specific release version
    9.028budtmo/docker-android:emulator_9.0budtmo/docker-android:emulator_9.0_<release_version>
    10.029budtmo/docker-android:emulator_10.0budtmo/docker-android:emulator_10.0_<release_version>
    11.030budtmo/docker-android:emulator_11.0budtmo/docker-android:emulator_11.0_<release_version>
    12.032budtmo/docker-android:emulator_12.0budtmo/docker-android:emulator_12.0_<release_version>
    13.033budtmo/docker-android:emulator_13.0budtmo/docker-android:emulator_13.0_<release_version>
    14.034budtmo/docker-android:emulator_14.0budtmo/docker-android:emulator_14.0_<release_version>
    --budtmo/docker-android:genymotionbudtmo/docker-android:genymotion_<release_version>
    --budtmo/docker-android:mcpbudtmo/docker-android:mcp_<release_version>

    List of Devices

    TypeDevice Name
    PhoneSamsung Galaxy S10
    PhoneSamsung Galaxy S9
    PhoneSamsung Galaxy S8
    PhoneSamsung Galaxy S7 Edge
    PhoneSamsung Galaxy S7
    PhoneSamsung Galaxy S6
    PhoneNexus 4
    PhoneNexus 5
    PhoneNexus One
    PhoneNexus S
    TabletNexus 7
    TabletPixel C

    Requirements

    1. Docker is installed on your system.

    Quick Start

    1. If you use Ubuntu OS on your host machine, you can skip this step. For OSX and Windows OS user, you need to use Virtual Machine that support Virtualization with Ubuntu OS because the image can be run under Ubuntu OS only.

    2. Your machine should support virtualization. To check if the virtualization is enabled is:

      sudo apt install cpu-checker
      kvm-ok
      
    3. Run Docker-Android container

      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
      
    4. Open http://localhost:6080 to see inside running container.

    5. To check the status of the emulator

      docker exec -it android-container cat device_status
      

    Persisting data

    The default behaviour is to destroy the emulated device on container restart. To persist data, you need to mount a volume at /home/androidusr: docker run -v data:/home/androidusr budtmo/docker-android:emulator_11.0

    WSL2 Hardware acceleration (Windows 11 only)

    Credit goes to Guillaume - The Parallel Interface blog

    Microsoft - Advanced settings configuration in WSL

    1. Add yourself to the kvm usergroup.

      sudo usermod -a -G kvm ${USER}
      
    2. Add necessary flags to /etc/wsl.conf to their respective sections.

      [boot]
      command = /bin/bash -c 'chown -v root:kvm /dev/kvm && chmod 660 /dev/kvm'
      

      Then, using PowerShell, open a notepad on notepad $env:USERPROFILE\.wslconfig. Inside, put these other flags:

      [wsl2]
      nestedVirtualization=true
      
    3. Restart WSL2 via CMD prompt or Powershell

      wsl --shutdown
      

    command = /bin/bash -c 'chown -v root:kvm /dev/kvm && chmod 660 /dev/kvm' sets /dev/kvm to kvm usergroup rather than the default root usergroup on WSL2 startup.

    nestedVirtualization flag is only available to Windows 11.

    If this setup does not work, you may have an old WSL version. In that case, ignore \.wslconfig and put everything on /etc/wsl.conf, including the [wsl2] flag.

    Use-Cases

    1. Build Android project
    2. UI-Test with Appium
    3. Control Android emulator on host machine
    4. SMS Simulation
    5. Jenkins
    6. Deploying on cloud (Azure, AWS, GCP)

    Custom-Configurations

    This document contains information about configurations that can be used to enable some features, e.g. log-sharing, etc.

    Genymotion

    For you who do not have ressources to maintain the simulator or to buy machines or need different device profiles, you can give a try by using Genymotion SAAS. Docker-Android is integrated with Genymotion on different cloud services, e.g. Genymotion SAAS, AWS, GCP, Alibaba Cloud. Please follow this document for more detail.

    Emulator Skins

    The Emulator skins are taken from Android Studio IDE and Samsung Developer Website

    USERS

    PRO VERSION

    Due to high requests for help and to be able to actively maintain the projects, the creator has decided to create docker-android-pro. Docker-Android-Pro is a sponsor based project which mean that the docker image of pro-version can be pulled only by active sponsor.

    The differences between normal version and pro version are:

    FeatureNormalProComment
    user-behavior-analyticsYesNo-
    ai-agentNoYesCurrently supported local-LLM server: Ollama, VLLM
    proxyNoYesSet up company proxy on Android emulator on fly
    languageNoYesSet up language on Android emulator on fly
    Newer Android versionNoYesSupport other newer Android version e.g. Android 15, Android 16, Android 17, etc
    root-privilegedNoYesAble to run command with security privileged
    headless-modeNoYesSave resources by using headless mode
    Selenium 4.x integrationNoYesRunning Appium UI-Tests againt one (Selenium Hub) endpoint for Android- and iOS emulator(s) / device(s)
    multiple Android-SimulatorsNoYes (soon)Save resources by having multiple Android-Simulators on one docker-container
    Google Play StoreNoYes (soon)-
    Video RecordingNoYes (soon)Helpful for debugging

    List pro-version images:

    AndroidAPITypeImage with latest release versionImage with specific release version
    9.028Normalbudtmo2/docker-android-pro:emulator_9.0budtmo2/docker-android-pro:emulator_9.0_<release_version>
    10.029Normalbudtmo2/docker-android-pro:emulator_10.0budtmo2/docker-android-pro:emulator_10.0_<release_version>
    11.030Normalbudtmo2/docker-android-pro:emulator_11.0budtmo2/docker-android-pro:emulator_11.0_<release_version>
    12.032Normalbudtmo2/docker-android-pro:emulator_12.0budtmo2/docker-android-pro:emulator_12.0_<release_version>
    13.033Normalbudtmo2/docker-android-pro:emulator_13.0budtmo2/docker-android-pro:emulator_13.0_<release_version>
    14.034Normalbudtmo2/docker-android-pro:emulator_14.0budtmo2/docker-android-pro:emulator_14.0_<release_version>
    15.035Normalbudtmo2/docker-android-pro:emulator_15.0budtmo2/docker-android-pro:emulator_15.0_<release_version>
    16.036Normalbudtmo2/docker-android-pro:emulator_16.0budtmo2/docker-android-pro:emulator_16.0_<release_version>
    17.037Normalbudtmo2/docker-android-pro:emulator_17.0budtmo2/docker-android-pro:emulator_17.0_<release_version>
    9.028Headlessbudtmo2/docker-android-pro:emulator_headless_9.0budtmo2/docker-android-pro:emulator_headless_9.0_<release_version>
    10.029Headlessbudtmo2/docker-android-pro:emulator_headless_10.0budtmo2/docker-android-pro:emulator_headless_10.0_<release_version>
    11.030Headlessbudtmo2/docker-android-pro:emulator_headless_11.0budtmo2/docker-android-pro:emulator_headless_11.0_<release_version>
    12.032Headlessbudtmo2/docker-android-pro:emulator_headless_12.0budtmo2/docker-android-pro:emulator_headless_12.0_<release_version>
    13.033Headlessbudtmo2/docker-android-pro:emulator_headless_13.0budtmo2/docker-android-pro:emulator_headless_13.0_<release_version>
    14.034Headlessbudtmo2/docker-android-pro:emulator_headless_14.0budtmo2/docker-android-pro:emulator_headless_14.0_<release_version>
    15.035Headlessbudtmo2/docker-android-pro:emulator_headless_15.0budtmo2/docker-android-pro:emulator_headless_15.0_<release_version>
    16.036Headlessbudtmo2/docker-android-pro:emulator_headless_16.0budtmo2/docker-android-pro:emulator_headless_16.0_<release_version>
    17.037Headlessbudtmo2/docker-android-pro:emulator_headless_17.0budtmo2/docker-android-pro:emulator_headless_17.0_<release_version>
    --AI-Agentbudtmo2/docker-android-pro:agentbudtmo2/docker-android-pro:agent_<release_version>
    --Seleniumbudtmo2/docker-android-pro:seleniumbudtmo2/docker-android-pro:selenium_<release_version>

    This document contains detail information about how to use docker-android-pro.

    LICENSE

    See License