The LXD container hypervisor

10x the density of ESX, 25% faster, with zero latency

Move your Linux VMs straight to containers, easily and without modifying the apps or your operations. Canonical’s LXD is a pure-container hypervisor that runs unmodified Linux operating systems and applications with VM-style operations at incredible speed and density.


Supported guest operating systems

  • Redhat logo
  • Walmart logo
  • Ubuntu logo
  • Debian logo
  • Oracle-Linux logo

Your first step to containers is the easiest

LXD containers are just like traditional physical and virtual machines - install applications the same way, secure them the same way, operate them with the same tools, but gain the raw performance and density of containers.

Launch new Linux machines in a second and run hundreds of them on a single server. Connect them separately and securely to networks. Live-migrate these machines between hosts just like a VM. And drive all of this through a clean REST API. That’s LXD — and it’s revolutionising high-performance computing and high-density infrastructure operations.

Like a virtual machine, only faster

The speed and density of containers, the familiarity of virtual machines — Canonical’s LXD is the next‐generation hypervisor for Linux at scale. LXD is designed to “lift and shift” Linux VMs to containers without modifying the app or operations. Nearly all applications can be installed in LXD containers, gaining performance and density. There is no need to touch the application to make it run in an LXD container because LXD’s machine containers operate just like virtual machines.

LXD is in use at

  • Walmart logo
  • Ebay logo
  • PayPal logo
  • Box logo

Getting started with LXD

On Ubuntu 16.04 LTS, activate LXD with:

$ sudo lxd init

You can generally hit Enter to accept the default answers to the questions, and once you’re setup you can start to launch machines. To create your first container:

$ lxc launch ubuntu: first-machine

You can see that machine:

$ lxc list
    |      NAME       |  STATE  |          IPV4          | IPV6 |    TYPE    | SNAPSHOTS |
    | first-machine   | RUNNING |  xx.xx.xx.xx           |      | PERSISTENT | 0         |

And you can jump into that container with:

$ lxc exec first-machine bash

Type ‘exit’ to quit the container and return to your host. Launch more containers and see how quickly subsequent machines can be created.


Is LXD a real Linux hypervisor?

You can live‐migrate LXD containers from machine to machine. We’re working with silicon companies to ensure hardware‐assisted security and isolation for these containers, just like virtual machines. The security cross‐section for individual containers can be tightened up for each specific workload. And you can bind storage and network interfaces to the containers, just like virtual machines.

All of this work is aimed at giving you the full experience of virtual machines and the full security of a hypervisor, but much, much faster. Without all that virtualisation overhead, you get the full underlying performance of your host environment. On bare metal, these containers are just as fast as the native OS. In the cloud, you’re getting subdivided machines without sub‐par performance.

Why use LXD?

LXD gives you a full ‘machine’ operating system functionality in your containers, not just a single process. It offers the maximum density of guests per host of any container solution and has been implemented in Go, for performance and concurrency. You also get:

  • Easy management and sharing of hardware resources
  • Easy monitoring of customer processes directly from the host level
  • RESTful API and simple CLI
  • Supports ARM, POWER, X86 and Z
  • Rapid provisioning, instant guest boot
  • Secure by default, with AppArmor, user namespaces, SECCOMP
  • Remote image services
  • Extensible storage and networking

Ultra-fast OpenStack with LXD

The combination of LXD and OpenStack makes for a very happy system administrator in a Linux‐oriented private cloud. All the agility of OpenStack, all the performance of your metal with no virt overhead.

As a validation point, we’ve included the nova‐lxd driver in Ubuntu 16.04.1, and are committed to steering this into upstream OpenStack.

This new driver allows OpenStack instances to be scheduled as Linux containers. Images are booted from OpenStack’s image service, Glance, and instances communicate over Neutron’s networking functionality just like KVM based VMs do.

How does LXD compare to Docker?

Docker and LXD are complementary, use them both, use them together!

LXD gives you a classic virtual machine experience with all your administrative processes running, from sshd to syslog, so LXD feels just like a normal system. All the apps work the same way, operations are identical, and of course you can run your Docker processes inside LXD containers. LXD is a cheaper, faster and better alternative to KVM, VMware and VirtualBox, for Linux-on-Linux workloads.

LXD guests always boot into a functional operating system. Process #1 is always /sbin/init, which forks off the usual things you expect in a Linux/UNIX OS environment: cron, at, ssh, syslog, journal, ntp, etc. Docker instances typically contain one and only one process or application.

LXD usage is often driven by operations where it is a fine addition to any infrastructure-as-a-service cloud, making those IaaS OS instances much faster. Whereas Docker usage is often driven by developers and forms the basis for platform-as-a-service clouds, making those PaaS application instances faster and more portable.

Docker can run alongside LXD with both instances working together. Moreover, Docker can run inside of LXD with zero performance impact.

Find out more about our partnership with Docker