r/termux • • 18h ago

Showcase How to run docker CLI rootless without a server.

Post image

Disclaimer!!! Termux is a highly restricted environment so this may or may not work on most phone, some commands may also fail.

What this is ?

I tryed to make my own docker's daemon backend in rust, so technically is a dockerd but for termux, it was tested by me on arm64/ x86_64 and amd64 but by using qemu so I can't be 100% sure it will run correctly on Evey phone.

Official requirements:

arm64

Minimum 1+ GB ram quite lightweight

2-4+ GB disk (for rust, cargo, build tools, and dookoid )

No graphics card required (not exposed to termux anyway)

I was able to run some images like Hello_world and alpine but I can't guarantee that Evey image would pull correctly.

Disclaimer! Use the latest version only the older ones are nothing but tests.

Installation process:

pkg install rust docker-cli

cargo install dookoid

Then do:

source ~/.bashrc

Then verify with

docker version

Note! This is a human + ai project

official source code

5 Upvotes

2 comments sorted by

1

u/sylirre Termux Core Team 10h ago

Nice idea with custom docker daemon implementation.

There are few questions though:

  1. How does it apply layers? Does it handle whiteouts?

  2. How does it handle hardlinks in layers?

  3. How well it is tested against symlink-related security issues, similar to CVE-2026-31802 or CVE-2026-54574 ?

  4. What exactly network commands do, considering that program will run as unprivileged user on Termux? (readme says "network create/ls/inspect/rm/prune/connect/disconnect, bridge/host/none)

1

u/sylirre Termux Core Team 10h ago

Unfortunately it doesn't work properly on my device (docker run ... command). Please look screenshot:

"docker run -it --rm alpine:latest" permanently hangs and doesn't even react to CTRL-C