LXD¶
LXD ([lɛks'di:]🔈) is a modern, secure and powerful system container and virtual machine manager.
It provides a unified experience for running and managing full Linux systems inside containers or virtual machines. LXD supports images for a large number of Linux distributions (official Ubuntu images and images provided by the community) and is built around a very powerful, yet pretty simple, REST API. LXD scales from one instance on a single machine to a cluster in a full data center rack, making it suitable for running workloads both for development and in production.
LXD allows you to easily set up a system that feels like a small private cloud. You can run any type of workload in an efficient way while keeping your resources optimized.
You should consider using LXD if you want to containerize different environments or run virtual machines, or in general run and manage your infrastructure in a cost-effective way.
In this documentation¶
Start here¶
Follow the tutorial for a guided introduction to LXD, including installing it using its snap.
Tutorial: Requirements • Install LXD using the snap • Create and configure test instances • Learn how to open an interactive shell into an instance • Learn how to back up and restore instances
Server and client¶
These guides help you manage a standalone LXD server or a cluster of servers, including how to access and communicate with servers.
Server: Server configuration options • Expose the server to the network • Supported server architectures
Clusters: About clusters • Form a cluster • Use placement groups for instance distribution across a cluster • Recover a cluster • Set up a highly available virtual IP
Access: Access the graphical UI • Authentication and authorization • Use single sign-on with OIDC • Use bearer tokens • Permissions reference • Add remote servers • Instances grouping with projects
Client-server communication: REST API reference • lxc CLI man pages • About the lxd and lxc CLIs
Workload management¶
An LXD server runs workloads on containers or virtual machines, which are created using images and can be grouped using projects.
Instances: System containers and virtual machines • Guest OS compatibility matrix • Create, configure, and manage instances • Configuration options • Store configuration options in profiles • Automate configuration with cloud-init • Back up, migrate, and import instances • Live migration
Images: About local and remote images • List of remote image servers • Manage images
Projects: Create and configure projects • Confine users to projects • About grouping instances
Storage and networks¶
Each LXD server is configured with storage and network options. These guides will help you understand and work with these resources.
Storage: Storage concepts • Driver types and configuration options • Manage pools, volumes, and buckets • Back up volumes • Move or copy volumes
Networks: Networking setups • Network types and configuration options • Create and configure networks • Configure ACLs, forwards, and load balancers • Configure a firewall
Lifecycle and administration¶
These guides cover lifecycle and ongoing administration concerns, such as installation (including non-snap options), production deployment setup, and security.
Lifecycle: Installation • Initialization • Releases and snap reference • Snap updates and upgrades • Release notes
Production setup: Production server settings • Back up a server • Benchmark performance • Monitor metrics • Perform disaster recovery •Performance tuning
Security: Overview • Harden security • Instance security policies
How this documentation is organized¶
This documentation uses the Diátaxis documentation structure.
The Tutorial takes you step-by-step through installing and initializing LXD, and learning how to use basic features such as launching instances.
The How-to guides assume you have basic familiarity with LXD. They walk you through specific tasks, such as creating storage pools and managing clusters.
The Reference guides include configuration options, API references, and other technical details.
The Explanation section includes topic overviews and detailed explanations of key concepts, such as the difference between system containers and virtual machines.
Project and community¶
LXD is a member of the Canonical family. It’s an open source project that warmly welcomes community contributions, suggestions, fixes, and constructive feedback.
Get involved¶
Releases¶
Governance and policies¶
Commercial support¶
Thinking about using LXD for your next project? Get in touch!