Run Android Emulators in Docker with Ease Using Docker-Android

Need a flexible and scalable Android emulator for development, testing, or CI pipelines? Docker-Android offers a containerized solution that runs Android emulators with various device profiles, VNC support, and ADB access โ€” all inside Docker.


Why Use Docker-Android?

Docker-Android simplifies emulator setup, especially in CI environments or when testing multiple device configurations. Key benefits include:

  • ๐ŸŽฎ Emulator Skins & Profiles โ€“ Samsung Galaxy S10, Nexus 5, Pixel C, and more.
  • ๐Ÿ–ฅ๏ธ VNC Access โ€“ View and control the emulator via your browser.
  • ๐Ÿ“œ Log Sharing โ€“ Access logs via a built-in web UI.
  • ๐Ÿ“ก ADB Support โ€“ Connect to the emulator via adb connect.
  • ๐Ÿ”Œ Framework Integration โ€“ Works with Appium, Espresso, and other test frameworks.
  • โ˜๏ธ Cloud Ready โ€“ Integrates with Genymotion Cloud, AWS, GCP, etc.
  • ๐Ÿงช UI Testing โ€“ Run unit and UI tests in isolated containers.

Available Docker Images

You can pull images by Android version or specific release version. Examples:

Android VersionAPILatest ImageSpecific Release
Android 9.028budtmo/docker-android:emulator_9.0budtmo/docker-android:emulator_9.0_<version>
Android 10.029budtmo/docker-android:emulator_10.0...
Android 11.030budtmo/docker-android:emulator_11.0...
Android 12.032......
Android 13.033......
Android 14.034......
Genymotionbudtmo/docker-android:genymotion...

Supported Devices

Docker-Android includes emulator profiles for a wide range of phones and tablets:

๐Ÿ“ฑ Phones

  • Samsung Galaxy S10 / S9 / S8 / S7 / S6
  • Nexus One / S / 4 / 5

๐Ÿ’ป Tablets

  • Nexus 7
  • Pixel C

Requirements

  • Docker installed on your system
  • Ubuntu host OS (natively or via VM for macOS/Windows users)
  • Virtualization support (KVM)

To check if virtualization is enabled:

sudo apt install cpu-checker
kvm-ok

Quick Start

Run a Docker-Android container with Samsung Galaxy S10 and Android 11:

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

Now, open your browser and go to:

http://localhost:6080

To check emulator status:

docker exec -it android-container cat device_status

Persisting Emulator Data

By default, emulator data is not saved. To persist data across container restarts:

docker run -v data:/home/androidusr \
  budtmo/docker-android:emulator_11.0

Use-Cases

Docker-Android is ideal for:

  • ๐Ÿ—๏ธ Building Android projects
  • ๐Ÿงช Automated UI testing (Appium, Espresso)
  • ๐Ÿ“ฑ ADB control and automation
  • ๐Ÿ“ค Cloud deployment (Azure, AWS, GCP)
  • ๐Ÿ“ก Jenkins & CI pipelines
  • ๐Ÿ’ฌ SMS simulation

Advanced Integrations

Genymotion SAAS

If you need more powerful cloud infrastructure or want to run multiple emulator types, Docker-Android supports integration with Genymotion SAAS and popular cloud platforms like:

  • AWS
  • GCP
  • Alibaba Cloud

About Docker-Android Pro

For more advanced use-cases, thereโ€™s a Docker-Android Pro version available for sponsors. It unlocks:

FeatureFreePro
Analytics-freeโœ…โœ…
Proxy SupportโŒโœ…
Language SettingโŒโœ…
Newer Android VersionsโŒโœ…
Root PrivilegesโŒโœ…
Headless ModeโŒโœ…
Selenium 4 IntegrationโŒโœ…
Multiple SimulatorsโŒโœ… (coming soon)
Google Play StoreโŒโœ… (coming soon)
Video RecordingโŒโœ… (coming soon)

Final Thoughts

Docker-Android is a powerful way to simulate Android devices on any infrastructure that supports Docker. Whether you’re a mobile developer, QA engineer, or DevOps specialist, this project helps bring scalable Android testing and development to your local machine or CI/CD pipelines.

For more details, check out the GitHub repository:
https://github.com/budtmo/docker-android

Post Comment

You May Have Missed