Container and virtualization tools
linuxcontainers.org is the umbrella project behind Incus, LXC, LXCFS, Distrobuilder and more.
The goal is to offer a distro and vendor neutral environment for the development of Linux container technologies.
Our focus is providing containers and virtual machines that run full Linux systems. While VMs supply a complete environment, system containers offer an environment as close as possible to the one you'd get from a VM, but without the overhead that comes with running a separate kernel and simulating all the hardware.
Active projects
Incus
Incus is a container and virtual-machine manager.
Based on LXC for containers and QEMU for virtual machines, it offers a
seamless cloud-like experience scaling from a developer's laptop to a
full cluster of up to 50 servers.
In addition to managing containers and VMs, Incus also provides
a variety of options to manage storage and network.
IncusOS
IncusOS is a modern immutable OS platform designed to run Incus.
Built from the ground up with one goal in mind, running Incus as
consistently and reliably as possible. It relies on modern
security technologies to offer a safe environment with strong boot
security and full disk encryption.
Its immutable base with an A/B update scheme makes it perfect
for those who just want a reliable virtualization platform, whether at
home or at datacenter scale.
LXC
LXC is a well-known Linux container runtime that consists of tools, templates, and library and language bindings. It's pretty low level, very flexible and covers just about every containment feature supported by the upstream kernel.
LXCFS
LXCFS is a userspace (FUSE) filesystem which offers:
- Overlay files for cpuinfo, meminfo, stat and uptime.
- A cgroupfs compatible tree allowing unprivileged writes.
It's designed to work around the shortcomings of procfs, sysfs and cgroupfs by exporting files that match what a system container user would expect.
distrobuilder
distrobuilder is an image building tool for containers and virtual machines:
- Complex image definition as a simple YAML document.
- Multiple output formats (chroot, LXD, LXC).
- Support for a lot of distributions and architectures.
distrobuilder's modern design utilises pre-built official images whenever available, uses a declarative image definition (YAML) and supports a variety of modifications on the base image.
Deprecated projects
CGManager
CGManager was a cgroup manager daemon designed to allow nested unprivileged containers to be able to create and manage their cgroups through a DBus API.