Step 1 – Install snapd
To install the snapd package type the following dnf command:
sudo dnf install snapd

How to install snapd on Fedora Linux
You must setup a symlink using the ln command, enter:
sudo ln -s /var/lib/snapd/snap /snapsnap version
Sample outputs:
snap 2.45.3.1-1.fc32 snapd 2.45.3.1-1.fc32 series 16 fedora 32 kernel 5.7.11-200.fc32.x86_64
Step 2 – Install and setup LXD on Fedora Linux server
Type the following snap command:
## first restart snapd using the systemctl command ##sudo systemctl restart snapd.servicesudo snap install lxd
!(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIxOCcgd2lkdGg9JzU5OScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4=)
Verify LXD installation
Make sure lxd service enabled on the Fedora Linux:
$ sudo snap enable lxd$ sudo snap services lxd
Service Startup Current lxd.daemon enabled active
If not active, startit:
sudo snap start lxd
Type the following usermod command (feel free to replace the username ‘ vivek ‘ with your actual username on Fedora Linux):
sudo usermod -a -G lxd vivekid viveknewgrp lxd

At this stage log out and log in again if session not activated
logout
Step 3 – Configure the LXD networking and storage for VM
Type the following command:
lxd init
!(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIzNScgd2lkdGg9JzU5OScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4=)
I suggest you use new backends such as ZFS, BTRFS, or LVM and along with DHCP based IP networking for ease of setup for each VM. As a result, you can use snapshots and other advanced features supported by new backends. You may get warning as follows:
WARNING: cgroup v2 is not fully supported yet, proceeding with partial confinement
Currenlty support for cgroups v2 is in development, but has not been rolled out. Hence, you need to ignore this warning on Fedora Linux 32.
lxd verification
Make sure the lxc client is talking to the LXD daemon:
lxc list
!(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIzNicgd2lkdGg9JzU5OScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4=)
lxc image list images:

(click to enlarge)
Most of the images are known by several aliases. To see a list, enter:
lxc image alias list images:lxc image alias list images: | grep -i archlxc image alias list images: | grep -i debianlxc image alias list images: | grep -i fedora
Step 4. Create your first LXD VM on Fedora
It is time to create and use your first container. To create and start containers from images use the launch command:
lxc launch images:{distro}/{version}/{arch} {container-name-here}
Let us see some examples to create and start containers from various Linux distro images as per your needs.
CentOS Linux 7 and 8 container
lxc launch images:centos/7/amd64 cenots-7-vmlxc launch images:centos/8/amd64 cenots-8-vm
Fedora Linux 33 container
lxc launch images:fedora/33/amd64 fedora-33
OpenSUSE Linux 15.2 continer
lxc launch images:opensuse/15.2/amd64 opensuse-15-2
Gentoo Linux container
lxc launch images:gentoo/amd64 gentoo-linux-vm
Arch Linux
lxc launch images:archlinux/amd64 arch-linux-vm
Ubuntu Linux LTS 18.04
lxc launch images:ubuntu/18.10/amd64 ubuntu-nginx-vm
Debian Linux 9.x
lxc launch images:debian/9/amd64 debian-nfs-server-vm
Debian Linux 10.x
lxc launch images:debian/10/amd64 debian-10-vmlxc list