LXC (abbreviazione di Linux Containers) è un ambiente di virtualizzazione a container, che opera a livello del sistema operativo e permette di eseguire diversi ambienti Linux virtuali isolati tra loro (container) su una singola macchina reale avente il kernel Linux.

I conteniner sono più simili a un chroot avanzato che a una virtualizzazione completa come Qemu o VMware, in quanto non emulano le componenti hardware e condividono il medesimo kernel dell’host. I contenitori sono simili alle zone Solaris o alle jail BSD. Linux-vserver e OpenVZ sono due implementazioni preesistenti, sviluppate in maniera indipendente, di funzionalità del tipo contenitore per Linux. In effetti i contenitori hanno avuto origine dal lavoro in upstream delle funzionalità vserver e OpenVZ.

Installazione

Per proceder alle configurazioni riportate di seguito su archlinux si possono installare i pacchetti necessari con il comando :

pacman -S lxc arch-install-scripts dnsmasq netctl haveged

Configurazione

NB: la procedura che segue è server per gestire container non privilegiati, allo scopo di garantire una mggiore sicurezza.

Configurazione dell’host

Per permettere l’esecuzione di conteiner non privilegiati è necessario che l’opzione del kernel  CONFIG_USER_NS sia abilitata, su archlinux lo è di default.

Rimane comunque da abilitare l’opzione su sysctl, quindi creare il file:

/etc/sysctl.d/lxc.conf

----

kernel.unprivileged_userns_clone=1

Configurazione del demone

Per il demone è necessatio configurare la mappatura tra uid e gid del container e quelli del sistema host, editando i seguenti file:

/etc/lxc/default.conf

---