LXD

From Alpine Linux
Revision as of 07:38, 1 November 2022 by Draga79 (talk | contribs) (Alpine 3.16 contains lxd - you don't need to enable edge repositories anymore)

Introduction

LXD is a next generation system container manager. It offers a user experience similar to virtual machines but using Linux containers instead. It allows an easier management and deployment of LXC containers.

Edit your /etc/apk/repositories and enable community repository:

 http://dl-cdn.alpinelinux.org/alpine/v3.16/main
 http://dl-cdn.alpinelinux.org/alpine/v3.16/community

Then, let's start installing lxd and dbus packages (dbus is needed for some containers as they refuse to start if unavailable)

 apk add lxd lxd-client lxcfs dbus

Then, let's set some options to be able to run the containers as unprivileged:

 echo "session optional pam_cgfs.so -c freezer,memory,name=systemd,unified" >> /etc/pam.d/system-login
 echo "lxc.idmap = u 0 100000 65536" >> /etc/lxc/default.conf
 echo "lxc.idmap = g 0 100000 65536" >> /etc/lxc/default.conf
 echo "root:100000:65536" >> /etc/subuid
 echo "root:100000:65536" >> /etc/subgid

If you plan to run systemd based Linux distributions (Debian, Ubuntu, etc.), add this to /etc/conf.d/lxc:

 systemd_container=yes

and enable both lxc and lxd at boot:

 rc-update add lxc
 rc-update add lxd
 rc-update add lxcfs

If you have problems, try to enable dbus:

 rc-update add dbus

Reboot and lxd should be working.