Setting up LXD

15 minutes
  • 3 Learning Objectives

About this Hands-on Lab

LXD leverages the Linux Container (LXC) system to create light, effective system containers. However, before we begin to use LXC/LXD, we need to ensure we have it properly installed, initialized, and otherwise configured. In this lab, we will install LXD 3.0 Stable on Ubuntu 18.04 and ensure it’s up and running.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Install LXD

Install LXD via snap:

sudo snap install lxd --channel=3.0/stable
Add cloud_user to lxd Group

Ensure the cloud_user can execute lxc/lxd commands by adding it to the lxd group:

sudo usermod cloud_user -aG lxd

Log out then log back in.

Initialize LXD

Initialize LXD and answer the prompts presented:

lxd init

Respond to the prompts as follows:

Would you like to use LXD clustering? (yes/no) [default=no]:

Do you want to configure a new storage pool? (yes/no) [default=yes]:

Name of the new storage pool [default=default]:

Name of the storage backend to use (btrfs, ceph, dir, lvm, zfs) [default=zfs]:

Create a new ZFS pool? (yes/no) [default=yes]:

Would you like to use an existing block device? (yes/no) [default=no]:

Path to the existing block device:

Would you like to connect to a MAAS server? (yes/no) [default=no]:

Would you like to create a new local network bridge? (yes/no) [default=yes]:

What should the new bridge be called? [default=lxdbr0]:

What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:

What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:

Would you like LXD to be available over the network? (yes/no) [default=no]:

Address to bind LXD to (not including port) [default=all]:

Port to bind LXD to [default=8443]:

Trust password for new clients:


Would you like stale cached images to be updated automatically? (yes/no) [default=yes]

Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:

Additional Resources

Our company is working on lifting-and-shifting a number of legacy applications onto resource-saving Linux containers. However, before any of this can be done, our team needs LXD-friendly development environments from which to work. Using the provided lab environment, we have to install and initialize LXD 3.0 Stable with a ZFS filesystem on /dev/nvme1n1, and make LXD available over the network.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?