Développé par | Daniel Lezcano, Serge Hallyn, Stéphane Graber |
---|---|
Première version | [1] |
Dernière version | 6.0.0 ()[2] |
Dépôt | github.com/lxc |
Écrit en | C |
Système d'exploitation | Linux |
Environnement | Linux |
Type | Virtualisation (isolateur) |
Licence | GNU LGPL v2.1 (certains composants sous GNU GPL v2 et BSD) |
Site web | linuxcontainers.org et linuxcontainers.org/lxc |
LXC, contraction de l’anglais Linux Containers[3] est un système de virtualisation, utilisant l'isolation comme méthode de cloisonnement au niveau du système d'exploitation. Il est utilisé pour faire fonctionner des environnements Linux isolés les uns des autres dans des conteneurs, partageant le même noyau et une plus ou moins grande partie du système hôte. Le conteneur apporte une virtualisation de l'environnement d'exécution (processeur, mémoire vive, réseau, système de fichier…) et non pas de la machine. Pour cette raison, on parle de « conteneur » et non de « machine virtuelle ».
Ce système est similaire aux autres systèmes de virtualisations au niveau du système d'exploitation comme openVZ, Linux-VServer sur Linux ou comme les BSD jails de FreeBSD, ou encore les zones Solaris.
LXC repose sur les fonctionnalités des cgroups du noyau Linux disponibles depuis sa version 2.6.24. Il repose également sur d'autres fonctionnalités de cloisonnement comme le cloisonnement des espaces de nommage du noyau, permettant d'éviter à un système de connaître les ressources utilisées par le système hôte ou un autre conteneur.
C'est la société Canonical, à l'origine de la distribution Linux Ubuntu, qui soutient le projet LXC[4].
Présent sur les principales distributions Linux, LXC est très simple de mise en œuvre[5]. La manipulation d'un conteneur nécessite au moins l'emploi des commandes[6] suivantes :