LXD: Difference between revisions

From Alpine Linux
(Created page with "= Introduction = [https://linuxcontainers.org/lxd/introduction/ LXD] is a next generation system container manager. It offers a user experience similar to virtual machines but...")
 
(added category)
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
= Introduction =
[https://linuxcontainers.org/lxd/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.  
[https://linuxcontainers.org/lxd/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.  


For now, Alpine Linux has a LXD package only for Edge so, first of all, you have to upgrade to Edge.
== Prerequisites ==
* Enable the [[Repositories#Enabling_the_community_repository|community repository]]
* Enable [[D-Bus]] (needed for some containers as they refuse to start if unavailable)


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


  apk add lxd dbus
Then, install the {{pkg|lxd}} package and other necessary packages:{{Cmd|# apk add lxd lxd-client lxcfs}}


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


  echo "session optional pam_cgfs.so -c freezer,memory,name=systemd,unified" >> /etc/pam.d/system-login
Set some options to be able to run the containers as unprivileged:{{Cmd|<nowiki># 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 = u 0 100000 65536" >> /etc/lxc/default.conf
  echo "lxc.idmap = g 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/subuid
  echo "root:100000:65536" >> /etc/subgid
# echo "root:100000:65536" >> /etc/subgid</nowiki>}}


If you plan to run systemd based Linux distributions (Debian, Ubuntu, etc.), add this to /etc/conf.d/lxc:
If you plan to run systemd based Linux distributions (Debian, Ubuntu, etc.), add this to {{Path|/etc/conf.d/lxc}} file:{{Cat|/etc/conf.d/lxc|<nowiki>
systemd_container=yes</nowiki>}}


  systemd_container=yes
and enable both lxc and lxd to start at boot:{{Cmd|<nowiki># rc-update add lxc
# rc-update add lxd
# rc-update add lxcfs</nowiki>}}


and enable both lxc and lxd at boot:
Reboot and lxd should be working.
 
  rc-update add lxc
  rc-update add lxd
 
If you have problems, try to enable dbus:


  rc-update add dbus
== See also ==


Reboot and lxd should be working.
* [https://documentation.ubuntu.com/lxd/latest/ Introduction to LXD on Ubuntu website]
[[Category:Virtualization]]

Latest revision as of 17:43, 14 July 2025

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.

Prerequisites

Installation

Then, install the lxd package and other necessary packages:

# apk add lxd lxd-client lxcfs

Configuration

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 file:

Contents of /etc/conf.d/lxc

systemd_container=yes

and enable both lxc and lxd to start at boot:

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

Reboot and lxd should be working.

See also