Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:autres:vm:lxc [22/03/2014 19:53] smolski |
doc:autres:vm:lxc [29/10/2016 12:47] greenmerlin [Installation] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== LXC ou la virtualisation allégée ======= | ====== LXC ou la virtualisation allégée ======= | ||
- | * Objet : Créer des environnements cloisonnés avec LXC sous Debian Wheezy | + | * Objet : Créer des environnements cloisonnés avec LXC sous Debian jessie |
* Niveau requis :{{tag>avisé}} | * Niveau requis :{{tag>avisé}} | ||
* Commentaires : //Entre machine virtuelle et chroot, votre cœur balance : choisissez LXC (Linux Containers) // | * Commentaires : //Entre machine virtuelle et chroot, votre cœur balance : choisissez LXC (Linux Containers) // | ||
- | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
* Suivi : | * Suivi : | ||
- | * Création par **bendia ** le 22/02/2014 | + | * Création par [[user>bendia ]] le 22/02/2014 |
- | * Testé par **bendia** le 21/02/2014 | + | * Mis à jour par [[user>greenmerlin ]] le 29/10/2016 |
- | * Testé par **paskal** le 01/03/2014 | + | * Testé par [[user>bendia]] le 21/02/2014 |
- | * Commentaires sur le forum : [[https://debian-facile.org/topic-8502-wiki-lxc-page-1.html#p82729 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | + | * Testé par [[user>paskal]] le 01/03/2014 |
- | + | * Commentaires sur le forum : [[https://debian-facile.org/topic-8502-wiki-lxc-page-1.html#p82729 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | |
===== Introduction ===== | ===== Introduction ===== | ||
LXC (LinuX Container) est un système permettant d'installer plusieurs distributions et applications séparées les unes des autres (comme des machines virtuelles) mais qui partagent malgré tout le même noyau du système hôte. \\ | LXC (LinuX Container) est un système permettant d'installer plusieurs distributions et applications séparées les unes des autres (comme des machines virtuelles) mais qui partagent malgré tout le même noyau du système hôte. \\ | ||
Il est donc à mi-chemin entre un //chroot// et une machine virtuelle. | Il est donc à mi-chemin entre un //chroot// et une machine virtuelle. | ||
- | <note warning>Attention ! Actuellement, sous Debian 7 Wheezy, LXC peut ne pas fournir une isolation suffisante permettant ainsi sous certaines conditions aux systèmes invités de compromettre le système hôte.\\ | + | <note warning>Attention ! Sous Debian 7 Wheezy, LXC peut ne pas fournir une isolation suffisante permettant ainsi sous certaines conditions aux systèmes invités de compromettre le système hôte.\\ |
Cette situation est en cours d'évolution avec 3.12/lxc-beta2 : [[https://www.stgraber.org/2014/01/17/lxc-1-0-unprivileged-containers/ | https://www.stgraber.org/2014/01/17/lxc-1-0-unprivileged-containers/]]</note> | Cette situation est en cours d'évolution avec 3.12/lxc-beta2 : [[https://www.stgraber.org/2014/01/17/lxc-1-0-unprivileged-containers/ | https://www.stgraber.org/2014/01/17/lxc-1-0-unprivileged-containers/]]</note> | ||
- | ===== Installation ===== | + | ===== Installation des paquets nécessaire ===== |
Installer le paquet lxc qui contient les outils permettant de créer, lancer, supprimer des conteneurs LXC | Installer le paquet lxc qui contient les outils permettant de créer, lancer, supprimer des conteneurs LXC | ||
<code root>apt-get install lxc</code> | <code root>apt-get install lxc</code> | ||
- | Lors de l'installation, vous devez indiquer l'emplacement où seront installées vos conteneur, ///var/lib/lxc// par défaut (FIXME Y-a-t-il des précautions pour installer sur une autre partition par exemple ?) | + | D'autres paquets sont recommandés, et notamment //debootstrap// qui permettra d'installer un autre système Debian, bridge-utils quand a lui vous permettra de créer des interfaces de type "pont" permettant a votre conteneur de communiquer avec l'extérieur: |
- | + | ||
- | D'autres paquets sont recommandés, et notamment //debootstrap// qui permettra d'installer un autre système Debian : | + | |
<code root>apt-get install bridge-utils libvirt-bin debootstrap</code> | <code root>apt-get install bridge-utils libvirt-bin debootstrap</code> | ||
- | ===== Utilisation ===== | + | ===== Installation et Utilisation ===== |
- | ==== Préparer le système hôte ==== | + | === Ancienne version de debian === |
- | === /etc/fstab === | + | <note important>Si vous utilisez la version stable de debian (la jessie à l'heure ou j'écrit ses lignes) vous pouvez directement vous rendre au paragraphe suivant</note> |
+ | === /etc/fstab === | ||
+ | <note warning>La modification de ///etc/fstab// n'est pas nécessaire sous //Jessie// si //systemD// et le paquet //libvirt-bin// sont installés. Le montage de //cgroup// sera effectué automatiquement.</note> | ||
LXC utilise le mécanisme des [[http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/cgroups/cgroups.txt?id=HEAD|Control Groups]] (les //cgroups//), une fonctionnalité du noyau Linux pour limiter, compter et isoler l’utilisation des ressources (processeur, mémoire, utilisation disque, etc.). Voir les détails sur : | LXC utilise le mécanisme des [[http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/cgroups/cgroups.txt?id=HEAD|Control Groups]] (les //cgroups//), une fonctionnalité du noyau Linux pour limiter, compter et isoler l’utilisation des ressources (processeur, mémoire, utilisation disque, etc.). Voir les détails sur : | ||
* [[http://fr.wikipedia.org/wiki/Cgroups|Wikipédia]] (fr) | * [[http://fr.wikipedia.org/wiki/Cgroups|Wikipédia]] (fr) | ||
Ligne 47: | Ligne 45: | ||
<code root>lxc-checkconfig</code> | <code root>lxc-checkconfig</code> | ||
- | <code>Kernel config /proc/config.gz not found, looking in other places... | + | <code config retour de la commande>Kernel config /proc/config.gz not found, looking in other places... |
Found kernel config file /boot/config-3.2.0-4-amd64 | Found kernel config file /boot/config-3.2.0-4-amd64 | ||
--- Namespaces --- | --- Namespaces --- | ||
Ligne 74: | Ligne 72: | ||
Note : Before booting a new kernel, you can check its configuration | Note : Before booting a new kernel, you can check its configuration | ||
- | usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig | + | usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig</code> |
- | </code> | + | |
==== Création de RootFS ==== | ==== Création de RootFS ==== | ||
Ligne 159: | Ligne 157: | ||
<code root>lxc-ls</code> | <code root>lxc-ls</code> | ||
- | <code>myfirstcontainer | + | <code config retour de la commande>myfirstcontainer |
monsecondconteneur | monsecondconteneur | ||
- | unautreconteneur | + | unautreconteneur</code> |
- | </code> | + | |
==== Mettre en pause un conteneur ==== | ==== Mettre en pause un conteneur ==== | ||
Ligne 179: | Ligne 177: | ||
<code root>lxc-info -n myfirstcontainer</code> | <code root>lxc-info -n myfirstcontainer</code> | ||
- | <code>state: RUNNING | + | <code config retour de la commande>state: RUNNING |
pid: 19879</code> | pid: 19879</code> | ||
Ligne 185: | Ligne 183: | ||
<code root>lxc-list</code> | <code root>lxc-list</code> | ||
- | <code>RUNNING | + | <code config retour de la commande>RUNNING |
myfirstcontainer | myfirstcontainer | ||
Ligne 192: | Ligne 190: | ||
STOPPED | STOPPED | ||
- | monsecondconteneur | + | monsecondconteneur</code> |
- | </code> | + | |
==== Se connecter au conteneur ==== | ==== Se connecter au conteneur ==== | ||
Ligne 200: | Ligne 198: | ||
Le login/mot de passe est //root/root// [[doc:systeme:passwd|à changer à la première connexion]] :-) | Le login/mot de passe est //root/root// [[doc:systeme:passwd|à changer à la première connexion]] :-) | ||
- | <code>Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself | + | <code config séquence interactive>Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself |
Ligne 229: | Ligne 227: | ||
==== Quitter le conteneur ==== | ==== Quitter le conteneur ==== | ||
- | //Ctrl+a q// | + | <key>C-a-q</key> |
===== TP associés ===== | ===== TP associés ===== | ||
- | <note>À venir ;-)</note> | + | *[[doc:autres:vm:lxc:reseau-bridge|TP : Configurer des conteneurs LXC en mode Bridge]] |
+ | *[[doc:autres:vm:lxc:mode-utilisateur|TP : Utilisation de LXC en mode utilisateur non-privilégié]] | ||
===== Liens ===== | ===== Liens ===== | ||
- | * [[https://wiki.debian.org/LXC|Le Wiki Debian]] (en) | + | * [[https://wiki.debian.org/fr/LXC|LXC sur Le Wiki Debian]] |
* [[https://debian-facile.org/topic-8480-mise-en-oeuvre-de-conteneur-page-1.html|Un topic dans le forum DF]] :-) | * [[https://debian-facile.org/topic-8480-mise-en-oeuvre-de-conteneur-page-1.html|Un topic dans le forum DF]] :-) | ||
* [[https://www.stgraber.org/2013/12/20/lxc-1-0-blog-post-series/|10 articles intéressants pour lxc]] | * [[https://www.stgraber.org/2013/12/20/lxc-1-0-blog-post-series/|10 articles intéressants pour lxc]] |