Linux containers, powered by systemd

The systemd
machine editor.

Full Linux systems in lightweight containers. Clone your host, run OCI applications, and deploy Kubernetes pods with one command line tool.

Up and running

One binary. Ready to boot.

For x86_64 and aarch64 Linux systems.

curl -fsSL https://sdme.io/install.sh | sudo sh

Installs to /usr/local/bin/sdme and verifies SHA256 checksums. Requires systemd ≥ 255 and systemd-container. Prefer a package? See downloads.

Learn by doing

Tutorials

From your first container to multi-service workloads.

Using sdme on macOS

Set up a Linux VM with lima-vm to run sdme on your Mac.

Using sdme on Windows

Run sdme inside WSL 2 on Windows.

Your First Container

Create a container, manage it, and learn how to run background processes like tmux.

Using a Different Root Filesystem

Import other Linux distributions and create containers from them.

Day-to-Day Management

Essential commands for managing containers: listing, logs, copying files, and troubleshooting.

Running Long-Lived Services

Install and run services like nginx inside sdme containers.

Intro to Running OCI Applications

Import and run OCI application images like nginx as systemd services inside sdme containers.

Bind Mounts and OCI Volumes

Share files between host and containers using bind mounts and OCI volumes.

Running an OCI Database with Volumes

Run PostgreSQL with automatically managed OCI volumes that persist data across container removal and re-creation.

Network Configuration

Configure container networking: host network, private network, veth, zones, bridges, and port forwarding.

Multi-Container Pod Networking

Share a network namespace between containers so they communicate via localhost.

Running Kubernetes Pods

Deploy OCI applications from Kubernetes Pod YAML manifests.

Building Root Filesystems

Build custom root filesystems with sdme fs build using Dockerfile-like configs.

Running Docker and a Registry Inside a Container

Run a full Docker engine and a private registry inside an sdme container, backed by btrfs storage.

Understand the system

Documentation

Architecture, isolation, and the details behind sdme.

Architecture and Design

How sdme works: overlayfs, systemd integration, OCI support, and Kubernetes pods.

Security

Container isolation, hardening tiers, OCI workload security, and Kubernetes pod security.

AI Skill

Embedded AI agent skill for using and troubleshooting sdme.


Downloads

Static binaries, .deb, .rpm, and .pkg.tar.zst packages are available on the releases page.

Ubuntu packages are also published on the Launchpad PPA, Fedora packages on Copr, and Arch Linux packages on the AUR (sdme-bin or sdme).

All artifacts are published with SHA256 checksums.