Here's a small, but powerful new tool I added to +systemd today: "systemd-import" can pull and update container images from the Internet, in the format and via the APIs of today's best known Linux container solution. This lightweight tool downloads the images, converts them into btrfs subvolumes/snapshots and makes them available as simple directory trees in /var/lib/container/, like any other container tree, which you then can boot with "systemd-nspawn".

This how you use it:

# systemd-import pull-dkr mattdm/fedora
# systemd-nspawn -M fedora

This first downloads "mattdm/fedora", and installs it into /var/lib/container/fedora, and then boots it directly via systemd-nspawn, like any other container tree.

All this with only a bit of C code, as part of the systemd suite. No new dependencies. No Go, no Python, no other runtime.

Next: add support for non-btrfs systems for this (by transparently creating a dynamically sized loopback file somewhere in /var, with btrfs inside, which can be used for this, so that only the redundant container images can reside in it, but your private user data and the rest of the OS don't have to be entrusted to btrfs).

Enjoy!
Shared publiclyView activity