Magic Tools
Developer ToolsBy CooconAugust 26, 202630 views2 min read

Containers in 1.5MB: Kern kills the daemon

Containers in 1.5MB: Kern kills the daemon

Your server runs containerd and runc — dozens of megabytes of runtime, plus a daemon that sits in memory 24/7 waiting for work that may never come.

Kern bets the other way: the entire container and resource runtime fits in a single 1.5MB binary, with no resident daemon. Run your task, exit, leave nothing behind.

What 1.5MB actually buys you

containerd + runc is a few dozen MB of footprint and a background service to babysit. Kern's 1.5MB changes the math:

  • It fits in an initramfs — you can run containers before the OS is fully up
  • It embeds as a library inside your Go or Rust binary
  • CI jobs spin up isolated tasks without standing up a container service first

For resource-constrained environments, that's a real difference, not a marketing number.

Who manages the container when there's no daemon?

The old model: a daemon sits in the background, accepts requests, manages container lifecycles. Kern flips it: the container's lifecycle belongs to the process that invoked it. The caller brings it up; when done, everything exits. No orphaned background processes.

Think of a daemon as a hotel front desk — someone's always on duty, you can check in at 3am. Kern is a self-check-in kiosk: it does its job and leaves. No staff, no electricity bill.

This isn't a novelty — it's a decade of evolution

A decade ago, Docker rescued containers from LXC's complexity by betting everything on "one daemon manages everything." Then Docker carved runc out into its own project — smaller job, and suddenly it fit everywhere.

Kern pushes the same logic further: the runtime is evolving from a system service into a library. Serverless, edge, FaaS — these are places that never wanted a daemon anyway. They want a function call.

Reality check: don't migrate yet

Kern is at Show HN stage. Not production-grade.

  • cgroup and seccomp support? The docs aren't complete.
  • The networking story? Not fully spelled out.
  • No daemon means edge cases are yours. When a container exits, resource reclamation is your problem.

The 1.5MB you save is paid for in edge cases you handle yourself.

What you can do today

Don't migrate. Spend half an hour reading its source structure to see how the daemon-less model handles resource reclamation on exit. If you work on serverless or edge computing, put it on your watch list — on the runtime-as-a-library path, nothing else is this far along.

✨ Drafted by DeepSeek, edited by Claude.

Sources:

Published by Magic Tools