DEV Community

Ai2th
Ai2th

Posted on

Pockr — Running Docker on a Non-Rooted Android Phone

What is Pockr?

Pockr stands for Pocket + Docker.

Docker in your pocket.

Pockr is a single Android APK that runs real Docker containers on any non-rooted Android phone. No Termux. No root access. No PC required after install.

You install it, tap Start Engine, and within minutes you have a live Docker daemon running inside a QEMU virtual machine — pulling images from Docker Hub, running containers, all from a device in your pocket.

GitHub: github.com/AI2TH/Pockr
Download: pockr-v1.apk — v1.0.0 · ARM64 · 163 MB


Why Does This Exist?

Android phones are powerful computers. A mid-range 2024 device has 8 cores, 8 GB RAM, and a full Linux kernel underneath. Yet the platform makes it nearly impossible to run Linux tools natively without root access.

Pockr explores how far you can push Android without any special privileges — using only public APIs, standard APK packaging, and a creatively bundled QEMU binary.


What You Need to Know Before Reading

This series assumes basic familiarity with:

Topic Why it matters
Docker What containers and images are, basic docker run usage
Linux Filesystems, processes, shared libraries (.so files)
Android App lifecycle, APK structure, ADB basics
ELF binaries Helpful for Parts 2–3 (linker, shared libraries)
Kotlin / Flutter Helpful for Parts 1 and 5

You do NOT need to know QEMU, Alpine Linux, or virtual machines — those are explained as we go.


The Stack at a Glance

Flutter UI (Dart)
  └── MethodChannel
        └── Kotlin VmManager
              └── QEMU (ARM64 binary, ships as libqemu.so)
                    └── Alpine Linux 3.19 (QCOW2 disk image)
                          └── Docker daemon
                                └── Your containers
Enter fullscreen mode Exit fullscreen mode
Layer Technology
UI Flutter + Provider
Native bridge Android MethodChannel (Kotlin)
Hypervisor QEMU 10.x, aarch64
Guest OS Alpine Linux 3.19
Container runtime Docker (inside Alpine)
API FastAPI on port 7080

About the Name: Pockr

Pockr = Pocket + Docker

The goal was always something you could hand to someone — "here, install this APK, and you have Docker". No server. No laptop. No setup beyond tapping a button.

Docker in your pocket. The dropped vowel keeps it short. The double meaning — pocket-sized and Docker — felt right.


Pockr Series — Docker in Your Pocket

Pockr = Pocket + Docker. A single Android APK that runs real Docker containers in your pocket — no root, no Termux, no PC required.

# Post Topic
📖 Intro What is Pockr? Start here
1 Part 1 The Idea and Architecture
2 Part 2 Executing Binaries — The SELinux Problem
3 Part 3 Bundling 50 Native Libraries
4 Part 4 Docker Without Kernel Modules
5 Part 5 Debugging the VM Restart Loop
6 Part 6 Test Results and What's Next

GitHub: github.com/AI2TH/Pockr

Creator & Lead Developer: Kalvin Nathan
skalvinnathan@gmail.com · LinkedIn

Top comments (0)