What's LXD?

LXD is a next generation system container manager.
It offers a user experience similar to virtual machines but using Linux containers instead.

It's image based with pre-made images available for a wide number of Linux distributions
and is built around a very powerful, yet pretty simple, REST API.

To get a better idea of what LXD is and what it does, you can try it online!
Then if you want to run it locally, take a look at our getting started guide.

The LXD project was founded and is currently led by Canonical Ltd
with contributions from a range of other companies and individual contributors.


The core of LXD is a privileged daemon which exposes a REST API over a local unix socket
as well as over the network (if enabled).

Clients, such as the command line tool provided with LXD itself then do everything through that REST API.
It means that whether you're talking to your local host or a remote server, everything works the same way.


Some of the biggest features of LXD are:

Integration with OpenStack

The "nova-lxd" project provides an OpenStack Nova plugin that seemlessly integrates
system containers into a regular OpenStack deployment.

With this, users will either get a virtual machine or a container, simply depending on what image or
instance type they select. It's completely transparent and works with the regular OpenStack APIs.

To learn more about LXD and OpenStack, take a look at our getting started with OpenStack page.


LXD works on any recent Linux distribution. LXD upstream directly maintains the Ubuntu packages
and also publishes a snap package which can be used with most of the popular Linux distributions.

More details can be found on our getting started page.

Relationship with LXC

LXD isn't a rewrite of LXC, in fact it's building on top of LXC to provide a new,
better user experience. Under the hood, LXD uses LXC through liblxc and its Go binding
to create and manage the containers.

It's basically an alternative to LXC's tools and distribution template system
with the added features that come from being controllable over the network.

Language, licensing and contributions

LXD is written in Go, it's free software and is developed under the Apache 2 license.

There are no CLA or similar legal agreements required to contribute to LXD,
however we do require commits be signed-off (following the DCO - Developer Certificate of Ownership).


LXD has two kind of releases:

The current LTS is LXD 2.0 which is supported until June 2021 and gets frequent bugfix and security updates
but does not receive any feature addition.

Feature releases are pushed out every month or so and contain new features as well as bugfixes.
The normal support length for those releases is of about a month, or until the next one comes out.
Some Linux distributions may offer longer support for particular feature releases that they decided to ship.

Commercial support for LXD on Ubuntu LTS releases can be obtained from Canonical Ltd.

Canonical logo