What is LXD?
To put it simply, LXD is a container/virtualization software utilizing the Linux Kernel. It is comparable to other container software such as Docker or Jails in BSD
What is the difference between LXD and LXC?
The two abbreviations come up a lot so I will define them here. First of all, LXD is split into two parts: LXD and LXC.
LX Daemon (LXD):
LXD is built on top of LXC to provide a better user experience in the management of your containers. It still requires LXC in order to function. It provides an easy to use command line tool as well as a REST API which can be utilized by existing third party tools or it can give you the freedom to create your own.
Linux Containers (LXC):
LXC is the underlying software used which interacts with the kernel. It provides the liblxc library as well as a standard toolset. It is possible to use LXC only, but in most cases you will probably use LXD in order to create containers.
LXD is a management tool built for LXC
How does it work?
Linux Containers essentially packages a whole lightweight Linux distribution (Debian, Ubuntu, OpenSUSE) into your container. It acts and functions as if you were running that distribution on your machine. You can execute typical Linux commands and do whatever you want with it. It piggybacks on the hosts machine kernel so there is a minimal performance hit on whatever containers you want to run.
More information can be found on their official website: linuxcontainers.org