A Dockerized Android emulator (x86) with native performance and seamless ADB & Web Scrcpy access.
10K+
Dockerify Android is a Dockerized Android emulator supporting multiple CPU architectures (x86 and arm64 in the near future ...) with native performance and seamless ADB & Web access. It allows developers to run Android virtual devices (AVDs) efficiently within Docker containers, facilitating scalable testing and development environments.
Access and control the Android emulator directly in your web browser with the integrated scrcpy-web interface! No additional software needed - just open your browser and start using Android.
Benefits of Web Interface:
- No extra software to install
- Access from any computer with a web browser
- Full touchscreen and keyboard support
- Perfect for remote work or sharing the emulator with team members
Before you begin, ensure you have met the following requirements:
Check KVM Support:
egrep -c '(vmx|svm)' /proc/cpuinfo
A non-zero output indicates KVM support.
To simplify the setup process, you can use the provided docker-compose.yml file.
Clone the Repository:
git clone https://github.com/shmayro/dockerify-android.git
cd dockerify-android
Run Docker Compose:
docker compose up -d
Note: This command launches the Android emulator and web interface. First boot takes some time to initialize. Once ready, the device will appear in the web interface at http://localhost:8000.
The quickest and easiest way to interact with the Android emulator is through your web browser:
http://localhost:8000
Note: First boot may take some time as the Android emulator needs to fully initialize. When everything is ready, the device will appear in the web interface as shown in the screenshot above.
If you need direct ADB access to the emulator:
adb connect localhost:5555
adb devices
Expected Output:
connected to localhost:5555
List of devices attached
localhost:5555 device
For a native desktop experience, you can use scrcpy:
scrcpy -s localhost:5555
Note: Ensure
scrcpyis installed on your host machine. Installation Guide
The first time you start the container, it will perform a comprehensive setup process that includes:
Important: The first boot can take 10-15 minutes to complete. You'll know the process is finished when you see the following log output:
Broadcast completed: result=0 Sucess !! 2025-04-22 13:45:18,724 INFO exited: first-boot (exit status 0; expected)
Note: If the Android emulator has restarted for any reason, it's recommended to restart the Docker container to reapply optimizations:
docker compose restartThis ensures the following optimizations are applied:
- Disabled animations for better performance
- Screen timeout set to 15 seconds
- Disabled rotation
- Custom DNS settings
- Airplane mode enabled (with WiFi still active)
- Data connection disabled
After the first boot completes, a file marker is created to prevent running the initialization again on subsequent starts.
All logs from the emulator and boot processes are redirected to Docker's standard log system. To view all container logs:
docker logs -f dockerify-android
This includes:
ADB Connection Refused:
Ensure ADB Server is Running:
adb start-server -a
Verify Firewall Settings: Ensure that port 5555 is open on your server.
Check Emulator Status: Ensure the emulator has fully booted by checking logs.
docker logs dockerify-android
First Boot Taking Too Long:
docker logs -f dockerify-androidEmulator Not Starting:
Check Container Logs:
docker logs dockerify-android
KVM Not Accessible:
Verify KVM Installation:
lsmod | grep kvm
Check Permissions: Ensure your user has access to /dev/kvm.
Contributions are welcome! To contribute:
Fork the Repository
Create a Feature Branch:
git checkout -b feature/YourFeature
Commit Your Changes:
git commit -m "Add Your Feature"
Push to the Branch:
git push origin feature/YourFeature
Open a Pull Request
Please ensure your contributions adhere to the project's coding standards and include relevant tests.
This project is licensed under the MIT License.
Content type
Image
Digest
sha256:306ed7732…
Size
1.4 GB
Last updated
2 months ago
Requires Docker Desktop 4.37.1 or later.