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 [01/03/2014 11:35] paskal [Utilisation] |
doc:autres:vm:lxc [02/03/2014 13:30] captnfab [Utilisation] |
||
---|---|---|---|
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 Wheezy | ||
* Niveau requis :{{tag>avisé}} | * Niveau requis :{{tag>avisé}} | ||
- | * Commentaires : //Entre machine virtuelle et chroot, votre cœur balance : choisissez LXC // FIXME | + | * 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à !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : {{tag>en-chantier à-tester à-placer}} | + | * Suivi : |
- | * Testé par bendia le 21/02/2014 | + | * Création par **bendia ** le 22/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 !)) FIXME | + | * Testé par **bendia** le 21/02/2014 |
- | + | * Testé par **paskal** le 01/03/2014 | |
- | **Nota :** | + | * 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 !)) |
- | + | ||
- | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | + | |
===== Introduction ===== | ===== Introduction ===== | ||
Ligne 25: | Ligne 23: | ||
Lors de l'installation, vous devez indiquer l'emplacement où seront installée vos conteneur, ///var/lib/lxc// par défaut (FIXME Y-a-t-il des précautions pour installer sur une autre partition par exemple ?) | Lors de l'installation, vous devez indiquer l'emplacement où seront installée 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 paquet sont recommandés, et notamment //debootstrap// qui permettra d'installer un autre système Debian | + | 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> | ||
Ligne 35: | Ligne 33: | ||
=== /etc/fstab === | === /etc/fstab === | ||
- | LXC utilise les //cgroups// (FIXME une petite vulgarisation la dessus :?: ). Il faut donc monter ce système de fichier virtuel dans ///etc/fstab// | + | 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//). \\ |
+ | Il est nécessaire de lister ce système de fichier virtuel dans ///etc/fstab// | ||
<code>cgroup /sys/fs/cgroup cgroup defaults 0 0</code> | <code>cgroup /sys/fs/cgroup cgroup defaults 0 0</code> | ||
Ligne 93: | Ligne 92: | ||
==== Le fichier de configuration ==== | ==== Le fichier de configuration ==== | ||
- | FIXME | + | Un fichier par défaut est créé lors de la création du conteneur, par exemple : |
+ | <file bash /var/lib/lxc/myfirstcontainer/config> | ||
+ | lxc.rootfs = /var/lib/lxc/myfirstcontainer/rootfs | ||
+ | lxc.tty = 4 | ||
+ | lxc.pts = 1024 | ||
+ | lxc.arch = amd64 | ||
+ | lxc.utsname = myfirstcontainer | ||
+ | lxc.cap.drop = sys_module mac_admin mac_override sys_time | ||
+ | |||
+ | # When using LXC with apparmor, uncomment the next line to run unconfined: | ||
+ | #lxc.aa_profile = unconfined | ||
+ | |||
+ | lxc.cgroup.devices.deny = a | ||
+ | # /dev/null and zero | ||
+ | lxc.cgroup.devices.allow = c 1:3 rwm | ||
+ | lxc.cgroup.devices.allow = c 1:5 rwm | ||
+ | # consoles | ||
+ | lxc.cgroup.devices.allow = c 5:1 rwm | ||
+ | lxc.cgroup.devices.allow = c 5:0 rwm | ||
+ | lxc.cgroup.devices.allow = c 4:0 rwm | ||
+ | lxc.cgroup.devices.allow = c 4:1 rwm | ||
+ | # /dev/{,u}random | ||
+ | lxc.cgroup.devices.allow = c 1:9 rwm | ||
+ | lxc.cgroup.devices.allow = c 1:8 rwm | ||
+ | lxc.cgroup.devices.allow = c 136:* rwm | ||
+ | lxc.cgroup.devices.allow = c 5:2 rwm | ||
+ | # rtc | ||
+ | lxc.cgroup.devices.allow = c 254:0 rm | ||
+ | |||
+ | # mounts point | ||
+ | lxc.mount.entry = proc proc proc nodev,noexec,nosuid 0 0 | ||
+ | lxc.mount.entry = sysfs sys sysfs defaults 0 0 | ||
+ | </file> | ||
+ | Ce fichier est à adapter suivant les besoins. | ||
==== Lancer le conteneur ==== | ==== Lancer le conteneur ==== | ||
Ligne 115: | Ligne 147: | ||
<code root>lxc-halt -n myfirstcontainer</code> | <code root>lxc-halt -n myfirstcontainer</code> | ||
- | ==== Lister les conteneurs ==== | + | ==== Afficher la liste des conteneurs ==== |
+ | <code root>lxc-ls</code> | ||
+ | <code>myfirstcontainer | ||
+ | monsecondconteneur | ||
+ | unautreconteneur | ||
+ | </code> | ||
+ | |||
+ | ==== Mettre en pause un conteneur ==== | ||
+ | <code root>lxc-freeze -n myfirstcontainer</code> | ||
+ | |||
+ | ==== Sortir de pause un conteneur ==== | ||
+ | <code root>lxc-unfreeze -n myfirstcontainer</code> | ||
+ | |||
+ | ==== Détruire un conteneur ==== | ||
+ | <code root>lxc-destroy -n myfirstcontainer</code> | ||
+ | |||
+ | ==== Afficher l'état d'un conteneur et son PID ==== | ||
+ | <code root>lxc-info -n myfirstcontainer</code> | ||
+ | <code>state: RUNNING | ||
+ | pid: 19879</code> | ||
+ | |||
+ | ==== Lister les conteneurs et leur état ==== | ||
<code root>lxc-list</code> | <code root>lxc-list</code> | ||
<code>RUNNING | <code>RUNNING | ||
Ligne 121: | Ligne 174: | ||
FROZEN | FROZEN | ||
+ | unautreconteneur | ||
STOPPED | STOPPED | ||
Ligne 126: | Ligne 180: | ||
</code> | </code> | ||
- | ==== Enter dans le conteneur ==== | + | ==== Se connecter au conteneur ==== |
<code>lxc-console -n myfirstcontainer</code> | <code>lxc-console -n myfirstcontainer</code> | ||
- | Le login/mot de passe est //root/root// [[doc:systeme:passwd|à changer dès que possible]] :-) | + | Le login/mot de passe est //root/root// [[doc:systeme:passwd|à changer à la première connexion]] :-) |
Ligne 139: | Ligne 193: | ||
==== Liens ==== | ==== Liens ==== | ||
- | [[https://wiki.debian.org/LXC|Le Wiki Debian]] (en) | + | * [[https://wiki.debian.org/LXC|Le Wiki Debian]] (en) |
- | + | * [[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|Le forum DF]] :-) | + | * [[https://www.stgraber.org/2014/01/17/lxc-1-0-unprivileged-containers/|Lancer des conteneurs sans privilèges root]] (en) |