Creating the Ultimate Container Playground: LXD on Kubic
Introduction
LXC (Linux Containers) are whole-system containers. They are meant to be able to do just about anything you can do with a VM with a percentage of the system resources and and a tiny startup time.
During Installation:
During installation, you can pretty much choose defaults for everything except you will need to create two additional btrfs subvolumes and if you gave your VM more than 30G of space, you will need to specify that manually because the installer will only recognize 30G by default.
Create btrfs subvolumes for: /snap /media
After Installation
Add the snappy repo
sudo zypper addrepo –refresh http://download.opensuse.org/repositories/system:/snappy/openSUSE_Tumbleweed/ snappy
Create the last subvolume needed for snappy
sudo btrfs subvolume create /var/lib/snapd
Install snappy
sudo transactional-update pkg install snapd
reboot
Enable and start the snapd service
sudo systemctl enable snapd && sudo systemctl start snapd
Install the LXD snap
sudo snap install lxd
Setup
Initialize LXD
lxd init (choose defaults to make life easier the first time)
Create your first LXC container. The first time you create the container, LXD will download the image. After that any new containers build from that image will start very quickly.
lxc launch images:opensuse/42.3 opensuse
Enter into your first container
lxc exec opensuse bash