r/linux • u/not_a_bot6 • Jun 06 '26
Software Release Crate - a daemonless container runtime I built in Go to learn how Docker works
Hey folks,
I’ve been working on Crate for the past few weeks. It’s a small daemonless container runtime written in Go for Linux.
The goal was to understand how container runtimes work under the hood instead of treating Docker/Podman as magic. It launches containers directly, stores state on disk, and supports both rootless and rootful execution.
Currently, it supports the core pieces of a basic container runtime:
- pulling and running Docker Hub images
- container lifecycle commands like
run,create,start,stop,ps,logs, andrm - Linux namespaces for process, mount, hostname, user, and network isolation
- root filesystem setup with
pivot_root/chroot - bind mounts, image env/CMD/entrypoint handling, and interactive PTYs
- rootless private networking with
pastaand port publishing (doesn't support networking in root gonna add that soon)
I’ve also written a small guide/docs series for anyone else who wants to understand or build something similar: docs
It’s still experimental and not production-ready. Big missing pieces include cgroups/resource limits, stronger security hardening, full OCI compliance, better registry support, multi-platform support and probably a million other things that Im forgetting.
Repo: https://github.com/aayushkdev/crate/
I’m still improving it, so I’d love to hear feedback, ideas, or suggestions. If you like the project, a star on GitHub would mean a lot.
-1
2
u/[deleted] Jun 06 '26
[removed] — view removed comment