Skip to main content

LXC Container - Requirements & Basics

Requirements

Install requirements for debian

apt-get install lxc libvirt0 libpam-cgfs bridge-utils uidmap
Basics

Start Container

lxc-start -n %NAME%

Stop Container

lxc-stop -n %NAME%

Attach Container (get access to cli inside container)

lxc-attach -n %NAME%

List info/state of containers

lxc-ls --fancy

Create container (template downloaded for unprivileged container)

lxc-create -n %NAME% -t download -- -r bookworm

Destroy (delete) container - container have to be stopped before

lxc-destroy -n %NAME%
Creating unprivileged containers

When creating unprivileged containers as root with shared UID and GID the files /etc/subuid and /etc/subgid need some entries. Check content of both files before appending stuff to it! Furthermore the default lcx configuration file /etc/lxc/default.conf has to be extened.

echo "root:100000:65536" >>/etc/subuid
echo "root:100000:65536" >>/etc/subgid
echo "lxc.idmap = u 0 100000 65536" >>/etc/lxc/default.conf
echo "lxc.idmap = g 0 100000 65536" >>/etc/lxc/default.conf
Autostart for containers

Add the following line to configuration file (/var/lib/lxc/%%NAME%%/config) of each container, which should be start automatically.

lxc.start.auto = 1
Basic default configuration
xc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:16:3e:xx:xx:xx

lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1

lxc.idmap = u 0 100000 65536
lxc.idmap = g 0 100000 65536