← projects

Boxr container runtime

A container runtime built using Linux namespaces, cgroups, and pivot_root.

golinuxcontainers
github ↗

boxr came out of researching how Kubernetes actually launches a container. As with I assume many people, I had used Docker and Kubernetes for years, and knew that containerd was somehow involved. But I wanted to understand how, exactly, the operating system is able to isolate processes and enforce resource quotas. I set out to replace runc with my own custom code, and a CLI wrapper that could replace docker/podman for basic CLI interactions.

What I learned, though, was that 1) systems programming is hard; 2) systems programming is even harder when you’re using Go to move between namespaces. I still have more to do in the project, but the work so far is documented in its own site, https://connergorman.com/boxr.