# Incus — Powerful System Container and Virtual Machine Manager > Incus is a modern system container and virtual machine manager forked from LXD. It provides a unified CLI and REST API for managing Linux containers and VMs with image-based workflows, clustering, live migration, and fine-grained resource controls. ## Install Save in your project root: # Incus — Powerful System Container and Virtual Machine Manager ## Quick Use ```bash # Install on Debian/Ubuntu via Zabbly repo sudo apt install incus # Initialize incus admin init --minimal # Launch an Ubuntu container incus launch images:ubuntu/24.04 my-container # Launch a VM incus launch images:ubuntu/24.04 my-vm --vm ``` ## Introduction Incus is a community-maintained fork of Canonical's LXD, managed under the Linux Containers project. It provides full system containers and virtual machines through a single tool, combining the density of containers with the isolation of VMs under one consistent API. ## What Incus Does - Manages both system containers (LXC) and QEMU-based virtual machines - Provides image-based workflows with a public image server - Supports clustering for distributing instances across multiple hosts - Enables live migration of running containers and VMs - Offers fine-grained resource limits for CPU, memory, disk, and network ## Architecture Overview Incus runs as a daemon exposing a REST API. The CLI (incus) communicates with this API to manage instances. Containers use LXC with kernel namespaces and cgroups. VMs use QEMU/KVM with virtio devices. Both instance types share the same storage, network, and profile abstractions, allowing unified management. ## Self-Hosting & Configuration - Install from distro packages (Zabbly repo for Debian/Ubuntu) or build from Go source - Run incus admin init to configure storage pool, network bridge, and clustering - Use profiles to define reusable configurations for CPU, memory, and devices - Configure storage backends: ZFS, Btrfs, LVM, or directory - Set up clustering by joining additional nodes to the leader ## Key Features - Unified management of containers and VMs through one tool - Built-in image server with pre-built images for 30+ Linux distributions - Clustering with automatic instance placement and failure recovery - Snapshot and backup support with scheduled automatic snapshots - Project-based multi-tenancy for isolating workloads and users ## Comparison with Similar Tools - **LXD** — Incus is the community fork after Canonical moved LXD to a CLA model; feature-equivalent with independent governance - **Docker** — application containers; Incus provides full system containers with init, SSH, and multi-process support - **Proxmox VE** — hypervisor with web UI; Incus is CLI/API-first and lighter weight - **libvirt/virsh** — lower-level VM management; Incus adds container support and a modern REST API ## FAQ **Q: What is the difference between Incus and LXD?** A: Incus is a community fork of LXD maintained by the Linux Containers project. It diverged after Canonical changed LXD's licensing. Functionally they are similar, with Incus adding community-driven features. **Q: Can I migrate from LXD to Incus?** A: Yes. The Incus project provides a lxd-to-incus migration tool that converts LXD installations in place. **Q: Does Incus replace Docker?** A: They serve different purposes. Docker runs application containers (one process). Incus runs system containers (full OS) and VMs. They can complement each other. **Q: What storage backends are supported?** A: ZFS, Btrfs, LVM, Ceph, and plain directory. ZFS and Btrfs offer the best snapshot and copy-on-write performance. ## Sources - https://github.com/lxc/incus - https://linuxcontainers.org/incus/ --- Source: https://tokrepo.com/en/workflows/asset-d4b824fe Author: AI Open Source