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