
Pockr | Part 4 — Docker Without Kernel Modules
Docker Run Without iptables, bridge, or overlay2 Part 4 of 6 — building Pockr, a single APK that runs Docker on non-rooted Android. ← Part 3: Bundling 50 Native Libraries Docker Starts — Then Immediately Fails Once QEMU was running and Alpine booted, we launched Docker. It started, then failed silently. Containers wouldn't run. No useful error message. The root cause: Alpine 3.19's Docker daemon defaults assume a full Linux kernel. Our QEMU kernel ( 6.6.14-0-virt ) is stripped — it doesn't load iptables , bridge , overlay2 , or ip_masq as kernel modules because there's no /lib/modules in the disk image. What Was Missing Feature Docker Expects Kernel Module Status in Our VM Network filtering iptables / nf_tables ❌ Not available Container networking bridge ❌ Not available Efficient storage overlay2 ❌ Not available NAT/masquerade ip_masq ❌ Not available Docker's default config tries to set up all of these on startup. Every one fails with operation not supported . The Fix: Minimal Docker C
Continue reading on Dev.to
Opens in a new tab


