LXD is a system container and virtual machine manager.
It offers a simple CLI and REST API to manage local or remote instances,
uses an image based workflow and support for a variety of advanced features.
Images are available for all Ubuntu releases and architectures as well
as for a wide number of other Linux distributions. Existing
integrations with many deployment and operation tools, makes it work
just like a public cloud, except everything is under your control.
LXD containers are lightweight, secure by default and a great
alternative to virtual machines when running Linux on Linux.
LXD virtual machines are modern and secure, using UEFI and secure-boot
by default and a great choice when a different kernel or operating
system is needed.
With clustering, up to 50 LXD servers can be easily joined and managed
together with the same tools and APIs and without needing any external
Supported configuration options for the snap (snap set lxd [<key>=<value>...]):
ceph.builtin: Use snap-specific Ceph configuration [default=false]
ceph.external: Use the system's ceph tools (ignores ceph.builtin) [default=false]
criu.enable: Enable experimental live-migration support [default=false]
daemon.debug: Increase logging to debug level [default=false]
daemon.group: Set group of users that have full control over LXD [default=lxd]
daemon.user.group: Set group of users that have restricted LXD access [default=lxd]
daemon.preseed: Pass a YAML configuration to lxd init on initial start
daemon.syslog: Send LXD log events to syslog [default=false]
daemon.verbose: Increase logging to verbose level [default=false]
lvm.external: Use the system's LVM tools [default=false]
lxcfs.pidfd: Start per-container process tracking [default=false]
lxcfs.loadavg: Start tracking per-container load average [default=false]
lxcfs.cfs: Consider CPU shares for CPU usage [default=false]
lxcfs.debug: Increase logging to debug level [default=false]
openvswitch.builtin: Run a snap-specific OVS daemon [default=false]
openvswitch.external: Use the system's OVS tools (ignores openvswitch.builtin) [default=false]
ovn.builtin: Use snap-specific OVN configuration [default=false]
shiftfs.enable: Enable shiftfs support [default=auto]
For system-wide configuration of the CLI, place your configuration in
/var/snap/lxd/common/global-conf/ (config.yml and servercerts)
The packages for RHEL 8 and RHEL 7 are in each distribution’s respective Extra Packages for Enterprise Linux (EPEL) repository. The instructions for adding this repository diverge slightly between RHEL 8 and RHEL 7, which is why they’re listed separately below.
The EPEL repository can be added to RHEL 8 with the following command: