LXC, ou Linux Containers, isole les conteneurs les uns des autres en utilisant plusieurs caractéristiques clés de l’architecture Linux.
1. Espaces de noms (namespaces): Les espaces de noms Linux permettent à chaque conteneur d’avoir une vue isolée du système d’exploitation. Par exemple, chaque conteneur peut avoir son propre réseau, son propre espace d’utilisateurs, sa propre hiérarchie de fichiers, etc.
1. Groupes de contrôle (cgroups) : Les cgroups permettent à LXC de limiter et de partitionner l’utilisation des ressources système – comme l’utilisation du CPU, de la mémoire, de l’espace disque, etc. – parmi les conteneurs. Cela signifie que chaque conteneur peut avoir sa propre limite d’utilisation des ressources, empêchant de monopoliser les ressources du système.
1. Capacités (capabilities) : Les capacités sont utilisées pour définir les autorisations de chaque conteneur. Par exemple, quelles commandes système peuvent être exécutées au sein du conteneur.
1. SELinux/AppArmor: Ces fonctionnalités de sécurité Linux peuvent fournir une couche supplémentaire d’isolation entre les conteneurs, notamment en définissant des politiques de contrôle d’accès aux ressources du système.
Ces fonctionnalités de Linux travaillent ensemble pour fournir une isolation robuste entre les conteneurs LXC, rendant chaque conteneur essentiellement indépendant l’un de l’autre.