docker-android: Android Emulators in Docker with VNC Support

docker-android: Android Emulators in Docker with VNC Support

Summary

docker-android offers a comprehensive solution for running Android emulators inside Docker containers, featuring noVNC support for remote access and video recording. This project streamlines Android development and testing by providing diverse device profiles and easy integration with cloud services. It's ideal for automating mobile app testing and building Android projects in a consistent, isolated environment.

Repository Info

Updated on February 8, 2026
View on GitHub

Tags

Click on any tag to explore related repositories

Introduction

docker-android, developed by budtmo, offers a comprehensive solution for running Android emulators directly within Docker containers. This project is designed to streamline Android application development and testing, supporting native, web, and hybrid applications. It comes equipped with noVNC for remote graphical interaction and capabilities for video recording, providing a consistent and isolated environment for your Android workflows. The repository provides various Android API versions and device profiles, making it highly versatile for different testing scenarios.

Installation

To get started with docker-android, you need to meet a few basic requirements:

Requirements

  1. Docker: Ensure Docker is installed on your system.
  2. Virtualization: Your machine must support virtualization. For Linux users, you can check this with kvm-ok after installing cpu-checker. For macOS and Windows, a Virtual Machine with Ubuntu OS that supports virtualization is required, as the image runs under Ubuntu OS only.

Quick Start

Once Docker is set up and virtualization is enabled, you can run a docker-android container with a simple command:

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

After running the container, you can access the Android emulator through your web browser by navigating to http://localhost:6080.

Examples

docker-android is highly versatile and can be used for various purposes. Here are some common use cases:

  • Building Android Projects: Compile and build your Android applications within the containerized environment.
  • UI-Testing with Appium: Integrate with testing frameworks like Appium to automate UI tests.
  • Controlling the Emulator: Use adb connect to control the emulator from your host machine.
  • CI/CD Integration: Easily integrate with CI/CD pipelines like Jenkins for automated testing and deployment.
  • Cloud Deployment: Deploy Android emulators on cloud platforms such as Azure, AWS, and GCP.

For a quick demonstration, you can use the command provided in the installation section to launch an emulator:

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

Why Use docker-android?

Choosing docker-android for your Android development and testing offers several significant advantages:

  • Diverse Emulators: Access emulators with various device profiles and skins, including popular models like Samsung Galaxy S10 and Nexus devices.
  • Remote Interaction: Utilize VNC support to visually interact with the emulator running inside the Docker container.
  • Log Sharing: Easily access all emulator logs via a web-UI for debugging and monitoring.
  • External Control: Control the emulator from outside the container using adb connect.
  • Cloud Integration: Seamlessly integrate with various cloud solutions, including Genymotion Cloud, AWS, GCP, and Alibaba Cloud.
  • Build & Test Capabilities: Use it to build Android projects and run unit and UI tests with frameworks like Appium and Espresso.
  • Consistent Environment: Provides a consistent and reproducible environment for development and testing, reducing "it works on my machine" issues.

Links