LXD on Debian (using snapd)
Stéphane Graber
on 22 February 2017
Tags: containers , LXD , snapd
Introduction
So far all my blog posts about LXD have been assuming an Ubuntu host with LXD installed from packages, as a snap or from source.
But LXD is perfectly happy to run on any Linux distribution which has the LXC library available (version 2.0.0 or higher), a recent kernel (3.13 or higher) and some standard system utilities available (rsync, dnsmasq, netcat, various filesystem tools, …).
In fact, you can find packages in the following Linux distributions (let me know if I missed one):
We have also had several reports of LXD being used on Centos and Fedora, where users built it from source using the distribution’s liblxc (or in the case of Centos, from an external repository).
One distribution we’ve seen a lot of requests for is Debian. A native Debian package has been in the works for a while now and the list of missing dependencies has been shrinking quite a lot lately.
But there is an easy alternative that will get you a working LXD on Debian today!
Use the same LXD snap package as I mentioned in a previous post, but on Debian!
Requirements
- A Debian “testing” (stretch) system
- The stock Debian kernel without apparmor support
- If you want to use ZFS with LXD, then the “contrib” repository must be enabled and the “zfsutils-linux” package installed on the system
Installing snapd and LXD
Getting the latest stable LXD onto an up to date Debian testing system is just a matter of running:
apt install snapd snap install lxd
If you never used snapd before, you’ll have to either logout and log back in to update your PATH, or just update your existing one with:
. /etc/profile.d/apps-bin-path.sh
And now it’s time to configure LXD with:
root@debian:~# lxd init Name of the storage backend to use (dir or zfs) [default=dir]: Create a new ZFS pool (yes/no) [default=yes]? Name of the new ZFS pool [default=lxd]: Would you like to use an existing block device (yes/no) [default=no]? Size in GB of the new loop device (1GB minimum) [default=15]: Would you like LXD to be available over the network (yes/no) [default=no]? Would you like stale cached images to be updated automatically (yes/no) [default=yes]? Would you like to create a new network bridge (yes/no) [default=yes]? What should the new bridge be called [default=lxdbr0]? What IPv4 subnet should be used (CIDR notation, “auto” or “none”) [default=auto]? What IPv6 subnet should be used (CIDR notation, “auto” or “none”) [default=auto]? LXD has been successfully configured.
And finally, you can start using LXD:
root@debian:~# lxc launch images:debian/stretch debian Creating debian Starting debian root@debian:~# lxc launch ubuntu:16.04 ubuntu Creating ubuntu Starting ubuntu root@debian:~# lxc launch images:centos/7 centos Creating centos Starting centos root@debian:~# lxc launch images:archlinux archlinux Creating archlinux Starting archlinux root@debian:~# lxc launch images:gentoo gentoo Creating gentoo Starting gentoo
And enjoy your fresh collection of Linux distributions:
>root@debian:~# lxc list +-----------+---------+-----------------------+-----------------------------------------------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +-----------+---------+-----------------------+-----------------------------------------------+------------+-----------+ | archlinux | RUNNING | 10.250.240.103 (eth0) | fd42:46d0:3c40:cca7:216:3eff:fe40:7b1b (eth0) | PERSISTENT | 0 | +-----------+---------+-----------------------+-----------------------------------------------+------------+-----------+ | centos | RUNNING | 10.250.240.109 (eth0) | fd42:46d0:3c40:cca7:216:3eff:fe87:64ff (eth0) | PERSISTENT | 0 | +-----------+---------+-----------------------+-----------------------------------------------+------------+-----------+ | debian | RUNNING | 10.250.240.111 (eth0) | fd42:46d0:3c40:cca7:216:3eff:feb4:e984 (eth0) | PERSISTENT | 0 | +-----------+---------+-----------------------+-----------------------------------------------+------------+-----------+ | gentoo | RUNNING | 10.250.240.164 (eth0) | fd42:46d0:3c40:cca7:216:3eff:fe27:10ca (eth0) | PERSISTENT | 0 | +-----------+---------+-----------------------+-----------------------------------------------+------------+-----------+ | ubuntu | RUNNING | 10.250.240.80 (eth0) | fd42:46d0:3c40:cca7:216:3eff:fedc:f0a6 (eth0) | PERSISTENT | 0 | +-----------+---------+-----------------------+-----------------------------------------------+------------+-----------+
Conclusion
The availability of snapd on other Linux distributions makes it a great way to get the latest LXD running on your distribution of choice.
There are still a number of problems with the LXD snap which may or may not be a blocker for your own use. The main ones at this point are:
- All containers are shutdown and restarted on upgrades
- No support for bash completion
If you want non-root users to have access to the LXD daemon. Simply make sure that a “lxd” group exists on your system and add whoever you want to manage LXD into that group, then restart the LXD daemon.
Extra information
The snapd website can be found at: http://snapcraft.io
The main LXD website is at: https://linuxcontainers.org/lxd
Development happens on Github at: https://github.com/lxc/lxd
Mailing-list support happens on: https://lists.linuxcontainers.org
IRC support happens in: #lxcontainers on irc.freenode.net
Try LXD online: https://linuxcontainers.org/lxd/try-it
Ubuntu cloud
Ubuntu offers all the training, software infrastructure, tools, services and support you need for your public and private clouds.
Newsletter signup
Related posts
Implementing an Android™ based cloud game streaming service with Anbox Cloud
Since the outset, Anbox Cloud was developed with a variety of use cases for running Android at scale. Cloud gaming, more specifically for casual games as...
Containerization vs. Virtualization : understand the differences
Containerization vs. Virtualization : understand the differences and benefits of each approach, as well as connections to cloud computing.
Meet Canonical at KubeCon + CloudNativeCon North America 2024
We are ready to connect with the pioneers of open-source innovation! Canonical, the force behind Ubuntu, is returning as a gold sponsor at KubeCon +...