[remark] Lightweight container building blocks

by Ciprian Dorin Craciun (https://volution.ro/ciprian) on 

Documenting various open-source tools and projects that I've found while experimenting with the Linux container technology.

// permanent-link // Lobsters // HackerNews // index // RSS

I've been playing the last few weeks with Podman as a container manager. (I say "manager" because, as I understand it, Podman is mainly in charge of resolving and fetching the container layers, configuring the networking, and then delegating to an actual container "runtime" such as crun or runc.)

However, this article is not about Podman, but it serves to know where I'm coming from.

I've played with it both in root-less (as a normal user) and root-full (as root user) modes, enough to say what are my main issues with Podman:

(Many, many, years ago, just before Docker was released, I've played with LXC and VServer, and I still find their proposition somewhat saner than Docker's...)

Fortunately, Podman was only the first step in my experiments, and I've since sought alternative tools that could help in building a more lightweight, customized solution.

In this article, I will briefly list these interesting projects, and my initial thoughts about them.

Note I've not extensively used any of these, and for some I've only read the documentation or GitHub readme! But will keep an eye on their future developments.

Container image tools

Container execution tools

Although full-virtualization is exactly what the container technologies have tried to provide alternatives to, many businesses use MicroVM virtualization solutions in place of containers. For example Fly.io, AWS Lambda, AWS Fargate, CloudFlare WebWorkers, just to name the most popular ones.

(Long term, I would bet that much of the current container technologies and runtimes will be replaced with MicroVM alternatives.)

MicroVM runtimes

PID-1 init alternatives

I won't enter into the details here, but if one runs in a container anything that forks or executes other processes, then one most likely needs a proper init solution, although a minimal one tailored for containers.

I'll keep updating this article as I find new and interesting projects pertaining to the subject.

Also, feel welcome to write me an email if you feel something is missing from this list. (Please note I'm searching for lightweight building blocks, not fully-fledged solutions.)