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
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
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
And you can jump into that container with:
$ lxc exec first-machine bash root@first-machine:~#
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:
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 there, from sshd to syslog, so LXD feels just like a normal machine. All the apps work the same way, operations are identical, and of course you can run your Docker processes inside LXD containers.
By contrast, Docker strips the container down to the naked application process, giving you fantastic density but requiring you to use a dedicated container coordination system like Kubernetes.