Run Android in Docker with NoVNC and Video Recording
Ever wanted to spin up an Android emulator quickly without bloating your local machine? Or maybe you need a disposable Android environment for CI/CD testing? docker-android by budtmo lets you run a full Android system inside a Docker container—complete with noVNC for remote access and even video recording.
What It Does
This project provides Docker images for different Android versions (API 28–34) and device profiles (Samsung Galaxy S10, Nexus devices, etc.). It’s not just an emulator—it’s a full containerized Android environment with:
- noVNC support: View and interact with the emulator via a browser.
- ADB control: Connect to the emulator from outside the container.
- Video recording: Capture test sessions for debugging.
- Cloud integration: Works with Genymotion Cloud and other services.
Why It’s Cool
- Lightweight & Isolated – No need to install Android Studio or deal with slow local emulators.
- CI/CD Friendly – Perfect for automated testing pipelines.
- Multi-Device Testing – Switch between device profiles (like a Samsung Galaxy S10 or Nexus 5) with a single flag.
- Log Sharing – Access all logs via a web UI.
How to Try It
-
Requirements:
- Docker installed.
- A host machine with KVM support (check with
kvm-ok
on Ubuntu).
-
Run the 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
-
Open noVNC:
Visithttp://localhost:6080
to see the emulator in your browser. -
Check status:
docker exec -it android-container cat device_status
Final Thoughts
This is a game-changer for Android devs who need reproducible, scalable emulator setups—especially for testing. It’s also great for running Android in cloud environments where GUI access is limited. The noVNC integration alone makes debugging way easier.
If you’re tired of juggling emulator configs or need a clean slate for testing, give this a spin.
GitHub Repo: budtmo/docker-android
Follow us for more cool projects → @githubprojects