LXC, acronimo di Linux Containers, isola i contenitori gli uni dagli altri utilizzando una combinazione di tecnologie del kernel Linux come cgroup e namespace.
- Namespace: In Linux, i namespace sono utilizzati per fornire un isolamento a livello di sistema operativo. Un namespace incapsula un ambiente globale di sistema con uno che appare privato per i processi all’interno del namespace. Per esempio, un processo può avere il proprio namespace per il filesystem, la rete, gli ID degli utenti, ecc. Ciò significa che un processo può avere la sua visione del sistema operativo piuttosto che condividere quella globale.
- Cgroups: Cgroups, che sta per control groups, è una caratteristica del kernel Linux che organizza i processi in gruppi gerarchici e permette loro di condividere le risorse del sistema, come la CPU, la memoria, l’I/O del disco, ecc. Ciò consente a LXC di limitare le risorse che un contenitore può utilizzare, prevenendo che un singolo contenitore occupi tutte le risorse disponibili.
Queste due caratteristiche insieme permettono a LXC di isolare efficacemente i processi del contenitore, il che significa che un processo in un contenitore non può vedere o influenzare i processi in un altro contenitore.