What is LXD (Linux container hypervisor)? | Definition from TechTarget (2024)

By

  • Stephen J. Bigelow,Senior Technology Editor
  • Nick Martin,Senior Director of Content Strategy and Member Engagement

LXD is an open source container management extension for Linux Containers (LXC). LXD both improves upon existing LXC features and provides new features and functionality to build and manage Linux containers.

LXD is a representational state transfer application programming interface (REST API) that communicates with LXC through the liblxc library. LXD also supplies a system daemon that applications can use to access LXC and has a template distribution system to enable faster container creation and operation.

Container users should understand that LXC is a Linux system container technology, which is, in some ways, similar to hypervisor-level virtualization, such as VMware ESXi, and, in other ways, similar to application containers, such as Docker.

Important features of LXD

LXD builds on LXC's basic feature set and enhances its capabilities. LXD's benefits include:

  • a powerful command-line interface (CLI);
  • high scalability;
  • improved security, as seen in unprivileged container settings and resource restrictions;
  • device pass-through capabilities for Universal Serial Bus (USB), network interface cards (NICs), disks, graphics processors and other hardware;
  • improved control over compute resources;
  • network and storage management capabilities, such as storage pooling;
  • snapshots of running containers; and
  • live migration of running containers between hosts.

LXD can also integrate with cloud platforms, such as OpenStack. For example, the Nova LXD project offers a plug-in for OpenStack Nova to integrate containers into OpenStack. Users can create virtual machines (VMs) or containers.

What is LXD (Linux container hypervisor)? | Definition from TechTarget (1)

Containers in LXD comprise many elements, including a file system named rootfs; a set of profiles and configuration options that includes the aforementioned resource specifications and limits; device references, such as disks and network interfaces; properties, such as a container's ephemeral or persistent state; and runtime details that are captured by snapshots.

Benefits and drawbacks

While LXD builds upon LXC to enable fine-grained container control and operational security, LXD is not for everyone. The feature set serves no purpose by itself and is only intended to operate in conjunction with LXC. It is possible to use LXC without LXD, but this provides only a bare subset of functions. Instead, LXC is almost always used together with LXD. But taken together, LXC and LXD offer a powerful and practical alternative to other container platforms, including Docker and CoreOS Rkt.

While a viable alternative to other containerization technologies, LXC system container technology does not include an application delivery framework comparable to Docker and Rkt and should not be considered a one-to-one replacement.

LXD versus Docker and Rkt

The fundamental difference between LXC/LXD and other tools such as Docker or Rkt is the type of container that is created.

Docker and Rkt application containers provide ephemeral, stateless containers using minimal resources. Docker and Rkt can download, cryptographically verify and run application container instances.

LXC with LXD creates instances similar to lightweight VMs -- each container running a full Linux system. Each Docker or Rkt container shares the same operating system (OS) kernel.

Docker relied on LXC in its early development but has since changed its code base to create an entirely different platform for containers. Still, Docker is noted for its similarities to LXC/LXD containers. The Rkt tool does not use a daemon, allowing different integration opportunities than Docker.

System and application container platforms are not mutually exclusive and can potentially coexist to provide different instance types depending on user needs. For example, a user can nest a Docker container in an LXD-managed LXC container.

Deployment and implementation in the Linux kernel

LXD is typically added to the Linux kernel. Packaged LXD distributions are available for numerous Linux distributions, including Fedora, Debian, openSUSE, Ubuntu, Alpine Linux, Arch Linux and Gentoo. Users can also obtain LXD builds for Windows and macOS.

The actual installation varies depending on the OS in use but generally relies on Linux commands, such as add and install. A user can also deploy LXD manually from source code. This approach typically requires the latest version of liblxc, the Linux tool Checkpoint/Restore (CRIU) in Userspace and Golang. All of these components should be installed separately. The user then downloads the LXC client and LXD server to the desired directories and adds them to the kernel to create the LXD daemon binary and the LXC command-line client to the LXD daemon.

LXD cost, availability and support

LXD is free and generally available in two release types. Long-term support (LTS) is the production-ready release version. LTS releases include bug fixes and security updates over a period of years but should not receive major new features. Feature releases are the more experimental LXD branch, appearing on a monthly basis with features and functionality that users can try.

Canonical launched LXD in late 2014 and remains a major contributor to LXD. However, LXD is an open source project, so an adopter should consider support when implementing LXC and LXD in a production setting. Support can be obtained from the user community, through professional consulting or service providers, or through the principal Linux vendor. For example, Canonical provides commercial support for LXD on Ubuntu LTS releases.

This was last updated in January 2018

Continue Reading About LXD (Linux container hypervisor)

  • Situations that call for a container platform that isn't Docker
  • Factors to consider when choosing a containerization platform
  • Introduction of LXD affects Docker containers' enterprise readiness
  • Evaluate the range of containerization options

Related Terms

application containerization (app containerization)
Application containerization is a virtualization technology that works at the operating system (OS) level. It is used for ...Seecompletedefinition
paravirtualization
Paravirtualization is a type of hardware virtualization that enables the guest operating system (OS) in a virtual machine (VM) to...Seecompletedefinition
What is server virtualization? The ultimate guide
Server virtualization is a process that creates and abstracts multiple virtual instances on a single server.Seecompletedefinition

Dig Deeper on Containers and virtualization

What is LXD (Linux container hypervisor)? | Definition from TechTarget (2024)

FAQs

What is LXD (Linux container hypervisor)? | Definition from TechTarget? ›

LXD is an open source container management extension for Linux Containers (LXC). LXD both improves upon existing LXC features and provides new features and functionality to build and manage Linux containers.

What is LXD Linux container? ›

LXD is image based and supports images for a large number of Linux distributions. It comes with built-in image stores that supply official Ubuntu images and images provided by the community, which allows you to spin up a container or a VM in a matter of seconds.

What is the meaning of LXD? ›

Learning experience design (LX design or LXD) bridges the gap between creative design disciplines and the field of learning. It offers a refreshing view on how to shape the way we learn by applying the perspective, methods, skills, and tools of a designer.

What is LXC hypervisor? ›

LXC (Linux containers)¶

LXC (also known as Linux containers) is a virtualization technology that works at the operating system level. This is different from hardware virtualization, the approach used by other hypervisors such as KVM, Xen, and VMware.

What is the difference between Docker and LXD? ›

It can run a single process per container which means that if one wants to run a z number of processes, one needs a z number of containers to run that process. LXD is faster than Docker for executing applications while using multiple processors. Docker is faster than LXD when a single processor is used.

What is Docker Linux containers explained? ›

Containers. A container is a runnable instance of an image. You can create, start, stop, move, or delete a container using the Docker API or CLI. You can connect a container to one or more networks, attach storage to it, or even create a new image based on its current state.

What are Linux containers used for? ›

Linux containers, in short, contain applications in a way that keep them isolated from the host system that they run on. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package.

Who uses LXD? ›

Companies Currently Using LXD
Company NameWebsiteSub Level Industry
Scopic Softwarescopicsoftware.comSoftware Development & Technical Consulting
SEQUOIASOFTsequoiasoft.comSoftware Manufacturers
AstraZenecaastrazeneca.comHealth & Nutrition Products
Rackspacerackspace.comSoftware Development & Technical Consulting
2 more rows

What is the difference between LXD and Kubernetes? ›

Kubernetes is an open-source container cluster manager. LXD is a system container and virtual machine manager. It offers a unified user experience around full Linux systems running inside containers or virtual machines. LXD is image based and provides images for a wide number of Linux distributions.

What are the system requirements for LXD? ›

LXD requires Go 1.22. 0 or higher and is only tested with the Golang compiler. We recommend having at least 2GiB of RAM to allow the build to complete.

What is hypervisor in Linux? ›

A hypervisor, also known as a virtual machine monitor or VMM, is software that creates and runs virtual machines (VMs). A hypervisor allows one host computer to support multiple guest VMs by virtually sharing its resources, such as memory and processing.

What is LXC and LXD? ›

LXC is a low-level user space interface for the Linux kernel containment features. It consists of tools ( lxc-* commands), templates, and library and language bindings. LXD is a more intuitive and user-friendly tool aimed at making it easy to work with Linux containers.

What is the difference between LXC and hypervisor? ›

The key difference is that while the hypervisor abstracts an entire device, containers just abstract the operating system kernel. LXC's entire point is to "create an environment as close as possible as a standard Linux installation but without the need for a separate kernel," says Bottomley.

What are the advantages of LXD? ›

LXD offers fine-grained control over system resources, allowing administrators to set resource limits, such as CPU, memory, and disk usage, for individual containers. This ensures fair resource allocation and prevents a single container from monopolizing resources at the expense of others.

What is difference between Docker and Linux? ›

Docker is developed in the Go language and utilizes LXC, cgroups, and the Linux kernel itself. Since it's based on LXC, a Docker container does not include a separate operating system; instead it relies on the operating system's own functionality as provided by the underlying infrastructure.

Why use LXD instead of Docker? ›

Docker, on the other hand, is a container management platform. Also, LXD communicates with the kernel via LXC, whereas Docker uses its own library container. Docker can only host a single operating system container on a single host, but LXD can host many operating system containers.

What is the difference between LXC and LXD container? ›

LXD is a more intuitive and user-friendly tool aimed at making it easy to work with Linux containers. It is an alternative to LXC's tools and distribution template system, with the added features that come from being controllable over the network. Under the hood, LXD uses LXC to create and manage the containers.

What is the difference between LXD and Podman? ›

Podman is meant to run 'application containers', where each container has just one running process. LXD is meant to run 'system containers' where each container is a full Linux distribution with an init system and (possibly) multiple daemons.

What is the difference between LXC and LXD and Docker? ›

LXD utilises LXC for running system containers. LXC is the technology allowing the segmentation of your system into independent containers, whereas LXD is a daemon running on top of it allowing you to manage and operate these instances in an easy and unified way.

Top Articles
Latest Posts
Article information

Author: Rueben Jacobs

Last Updated:

Views: 6524

Rating: 4.7 / 5 (77 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Rueben Jacobs

Birthday: 1999-03-14

Address: 951 Caterina Walk, Schambergerside, CA 67667-0896

Phone: +6881806848632

Job: Internal Education Planner

Hobby: Candle making, Cabaret, Poi, Gambling, Rock climbing, Wood carving, Computer programming

Introduction: My name is Rueben Jacobs, I am a cooperative, beautiful, kind, comfortable, glamorous, open, magnificent person who loves writing and wants to share my knowledge and understanding with you.