TopGit
GitHub Repo Review

Docker-Android: Android Emulator in a Docker Container

budtmo/docker-android
DTopGit review image for budtmo/docker-android
Review by Topgit.dev for budtmo/docker-android, with GitHub repository stats and README context.
Quick verdict

Docker-Android packages a full Android emulator, ADB access, and a noVNC web viewer into one Docker container, so you can spin up a device without touching Android Studio. Reach for it if you need a disposable Android emulator you can drive from a CI pipeline or a headless server. Skip it if you're on Windows or macOS without a working Ubuntu VM, or if you need Android 15/16 — those sit behind the paid Docker-Android-Pro sponsorship.

Stars
★ 15.6k
Forks
⑂ 1.7k
Language
Python
License
See repository
Topic
Mobile
Updated
Aug 2026
Homepage
GitHub

What is Docker-Android?

Docker-Android is a Docker image that bundles an Android emulator with noVNC, so you can view and drive the device from a browser instead of Android Studio. It ships image tags for Android 9.0 through 14.0 (API 28-34) plus a Genymotion-based variant, with ADB exposed for outside tools to connect. The README positions it for building Android projects and running UI or unit tests with frameworks like Appium and Espresso.

Key Features for Android Development and Testing

  • Device skins for phones and tablets — Samsung Galaxy S10 down to Nexus One, plus Nexus 7 and Pixel C tablets, per the README's device list.
  • noVNC in the browser — connect to http://localhost:6080 to watch and interact with the emulator without a native VNC client.
  • Log sharing through the web UI, so container logs are readable without shelling in.
  • ADB connect from the host, letting you attach existing Android tooling to the container's emulator.
  • Genymotion Cloud integration on AWS, GCP, and Alibaba Cloud, per the README.
  • Image tags spanning Android 9.0 to 14.0 (API 28-34), each pinned to a specific release version if you need reproducible builds.
How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history

Common Use Cases for Docker-Android

  • Building an Android project inside the container instead of a separate local toolchain.
  • Running UI tests with Appium against the emulator.
  • Controlling the Android emulator from the host machine over ADB.
  • Simulating SMS on the emulator for app testing flows.
  • Wiring the container into a Jenkins pipeline for CI.
  • Deploying to Azure, AWS, or GCP, per the README's cloud use case doc.

Setting Up Docker-Android

Setting up Docker-Android needs nothing more than Docker installed on the host — that's the only requirement the README lists. The catch is the OS: the image only runs on Ubuntu, so macOS and Windows users need a virtual machine running Ubuntu with virtualization turned on underneath it. Check that your machine actually exposes virtualization before pulling an image: run `sudo apt install cpu-checker` then `kvm-ok`. From there you pick one of the emulator image tags, such as `budtmo/docker-android:emulator_11.0`, and run it with `--device /dev/kvm` so the emulator gets hardware acceleration.

Running an Android Emulator Container

Running the container example from the README looks like: `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`. Once it's up, open `http://localhost:6080` in a browser to see the emulator through noVNC, and run `docker exec -it android-container cat device_status` to check whether it's finished booting. Data doesn't survive a restart by default. The README says the emulated device is destroyed on container restart unless you mount a volume at `/home/androidusr`, e.g. `docker run -v data:/home/androidusr budtmo/docker-android:emulator_11.0`.

Strengths

  • Twelve device profiles and skins, from Samsung Galaxy S10 down to Nexus One, so you're not stuck testing on one virtual phone.
  • noVNC means you can watch the emulator run from any browser — no VNC client, no X server on your laptop.
  • ADB is exposed to the host, so your existing Appium/Espresso test setup can point at the container like any other device.
  • Image tags are pinned to both Android version and release version, so you can lock a CI pipeline to a known-good build.

Normal vs. Pro Version Features

  • The free image has no headless mode — it always renders a full graphical desktop through noVNC, which is pro-only per the README's comparison table.
  • Newer Android versions like 15 and 16 are Docker-Android-Pro exclusives, so the free tags top out at Android 14.0 (API 34).
  • No root-privileged commands or on-the-fly proxy/language configuration in the normal version — those are also gated behind Docker-Android-Pro, which requires being an active GitHub Sponsor.
  • Only runs natively on Ubuntu; macOS and Windows users add a VM layer just to get started.
  • Emulator state is wiped on every container restart unless you remember to mount a volume at /home/androidusr.

Considering Genymotion and Other Options

Genymotion — the commercial cloud/desktop Android emulator that Docker-Android itself integrates with on AWS, GCP, and Alibaba Cloud, per the README.Android Studio's built-in AVD emulator — the default local option if you don't need a container or a browser-based VNC view.Firebase Test Lab — Google's hosted device farm for running the same tests against real and virtual Android hardware.BrowserStack App Automate — a paid cloud alternative when you want emulator and real-device coverage without managing infrastructure yourself.

Frequently Asked Questions

What Android versions does Docker-Android support?

Docker-Android ships prebuilt images for Android 9.0 through 14.0 (API levels 28 to 34), plus a separate Genymotion-based image, according to the image table in the README.

Can Docker-Android be used on Windows or macOS?

Docker-Android's image only runs on Ubuntu, so Windows and macOS users need to run it inside a virtual machine with Ubuntu and virtualization enabled, per the README's Quick Start section.

How does Docker-Android compare to Genymotion?

Docker-Android integrates directly with Genymotion Cloud rather than replacing it — the README describes it as integrated with Genymotion on services like Genymotion SAAS, AWS, GCP, and Alibaba Cloud, and it ships a separate genymotion image tag alongside its own emulator images.

What are the differences between Docker-Android and Docker-Android-Pro?

Docker-Android-Pro is a separate, sponsor-only image with features the free version lacks, including proxy setup, on-the-fly language configuration, root-privileged commands, headless mode, Selenium 4.x integration, and support for newer Android versions, per the README's comparison table.

Does Docker-Android support persistent data for emulators?

Docker-Android destroys the emulated device by default on container restart; persisting data requires mounting a volume at /home/androidusr, as documented in the README's 'Persisting data' section.

Is hardware acceleration supported for Docker-Android on WSL2?

Docker-Android supports WSL2 hardware acceleration on Windows 11 only, via adding the user to the kvm usergroup and enabling the nestedVirtualization flag in .wslconfig, per the README's WSL2 setup instructions.

The problem it solves

Android emulators are GUI-first — AVD wants a desktop, a GPU, and a human clicking around, which is a bad fit for a build server or a laptop you're SSH'd into. Docker-Android solves the specific gap of running that emulator inside a container while still giving you a way to look at the screen: noVNC in a browser, plus ADB exposed to the host so existing test tooling can attach. That's narrower than 'Android testing is hard' — it's specifically the packaging problem of getting an emulator, its GPU/KVM dependency, and a remote display into one image you can pull on a CI runner or a cloud box.

Who should try it — and who should skip

Try Docker-Android if you run Android UI tests in CI and want a disposable emulator you don't have to install Android Studio to get — Jenkins users especially, since it's one of the README's documented use cases. Skip it if you're doing local day-to-day app development on a Mac or Windows laptop without a real Ubuntu VM already set up, or if you specifically need Android 15/16, since those versions sit behind the sponsor-only Docker-Android-Pro image.

Related repositories

Source & attribution

Sourced from the budtmo/docker-android GitHub repository README and metadata (github.com/budtmo/docker-android).

GitHub data · last synced Aug 6, 2026Reviewed by Henry
Back to TopGit