Container engine
for Android
Run Docker containers on your phone. One binary, zero dependencies, no root required.
Features
Everything Docker has.
Without the overhead.
Docker cannot run on Android. Doki can. Same OCI images, same workflow, fraction of the resources.
Zero Dependencies
Single static binary. No containerd, no runc, no libseccomp, no systemd. Just copy and run. Ships everything you need in one ~8.5MB executable.
OCI + Podman API v5
Full Docker Hub support. 39 Podman API v5 endpoints. Same API as Docker Engine v1.55. Your docker-compose files work out of the box.
Kubernetes 1.32
6 components: API Server, Kubelet, Scheduler, 10 Controllers, Kube-proxy, CoreDNS. 80 K8s API types. Full kubectl client.
6 Binaries, 14.5MB
doki, dokid, doki-compose, doki-init, doki-kube, doki-kubectl. All in one package. ARM64, ARMv7, macOS native.
macOS Native VZ
Apple Virtualization.framework for macOS 11+. QEMU fallback for Intel Macs. Sandbox backend for lightweight isolation.
DokiLink Mesh
Peer-to-peer container networking. mDNS auto-discovery. Encrypted with TLS 1.3 + secretbox. Zero config.
Landlock Sandbox
Linux 5.13+ ABI v9 support. Filesystem, network, scope rules. Auto-detection with fallback. Secure by default.
100% Rootless
Runs as unprivileged user on Android. No root, no namespace tricks. Just works.
How it works
Pull, build, run.
Done.
Download one binary, pull any OCI image, run containers in seconds.
Try it
See it in action.
Pull an image, run a container, map a port. All in a few seconds.
Built with
Go, C, and a little ObjC.
55,000+ lines of Go. 16,000 lines of C. 1,000 lines of Objective-C for the macOS VZ backend.
Performance
Doki vs the rest.
Docker cannot run on Android. Doki was built for it from the ground up.
| Metric | Doki | Docker | Podman |
|---|---|---|---|
| Binary size | 8.56 MB | 58 MB | 45 MB |
| Memory (idle) | 12 MB | 85 MB | 60 MB |
| Cold start | <15ms | ~50ms | ~30ms |
| Root required | No | Yes | No |
| Android native | Yes | No | No |
| OCI registry | Yes | Yes | Yes |
| Compose | Yes | Yes | Yes |
| Podman API v5 | 39 endpoints | N/A | 184 endpoints |
| Kubernetes 1.32 | 6 components | No | No |
| Landlock sandbox | ABI v9 | No | No |
Benchmarks measured on Pixel 8 (Android 14). Docker measured on Ubuntu 24.04 (x86_64). Your mileage may vary.
v0.12.0
Mesh. Kubernetes.
macOS native.
Everything you need to run containers anywhere.
Distributed Container Mesh
Peer-to-peer container networking with NAT traversal (STUN/TURN), Kademlia DHT for decentralized peer discovery, and mDNS auto-discovery. Encrypted with TLS 1.3 and secretbox payload encryption.
Note: Peers can connect across NAT boundaries without static config.
$ doki link add peer.localDiscovering peer via DHT/mDNS...NAT traversal: STUN binding...Establishing encrypted channel (TLS 1.3)...✓ Peer connected. Mesh: 2 nodes$ doki mesh statusPeers: 2 (DHT: 8 nodes known) peer.local [connected] latency: 3ms phone-2 [connected] latency: 12msCommunity
What developers are saying.
Click on a node to read a comment
Run containers on your phone.
One binary. Zero dependencies. No root.
curl -sL dok1.xyz | bash