logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 [23/02/2014 17:25]
paskal [Utilisation]
doc:autres:vm:lxc [29/10/2016 12:39]
greenmerlin [Installation]
Ligne 1: Ligne 1:
-===== LXC ou la virtualisation ​allégé ​======+====== 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 // 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à !.]] :-) +  * Suivi : 
-  Suivi : {{tag>​en-chantier ​à-tester à-placer}} +    * 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 
-  * 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 [[user>bendia]] le 21/02/2014 
- +    * Testé par [[user>​paskal]] le 01/03/2014 
-**Nota :​** +  * 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 !))
- +
-Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! +
 ===== Introduction ===== ===== Introduction =====
  
-LXC (LinuX Container) est un système permettant d'​installer plusieurs distributions ​séparée ​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.+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. 
 +<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>​
  
 ===== Installation ===== ===== Installation =====
  
-Installer le paquet lxc qui contient les outils permettant de créer, lancer ​supprimé ​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é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 ​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 ​paquet ​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 34: Ligne 30:
  
 === /etc/fstab === === /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 :
 +   * [[http://​fr.wikipedia.org/​wiki/​Cgroups|Wikipédia]] (fr)
  
-LXC utilise les //cgroups// (FIXME une petite vulgarisation la dessus :?: ). Il faut donc monter ​ce système de fichier virtuel dans ///​etc/​fstab//​ +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>​
  
-et monter le système de fichier +et monter le système de fichier ​:
 <code root>​mount /​sys/​fs/​cgroup</​code>​ <code root>​mount /​sys/​fs/​cgroup</​code>​
  
Ligne 46: Ligne 43:
  
 <code root>​lxc-checkconfig</​code>​ <code root>​lxc-checkconfig</​code>​
- +<​code ​config retour de la commande>Kernel config /​proc/​config.gz not found, looking in other places...
-<​code>​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 70:
  
 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 ==== 
  
-LXC vient avec des //​Templates//,​ c'est à dire des scripts permettant l'​installation simple d'un système. Il en existe pour Debian, Archlinux, Fedora, OpenSuse et Ubuntu.+==== Création de RootFS ====
  
-Créons don par exemple ​un système, ​tiens au hasard**Debian** :-D+LXC vient avec des //​Templates//,​ c'est à dire des scripts permettant l'​installation simple d'un système. \\ 
 +Il en existe pour DebianArchlinuxFedora, OpenSuse et Ubuntu.
  
 +Créons par exemple un système, tiens au hasard, **Debian** :-D
 <code root>​lxc-create -n myfirstcontainer -t debian</​code>​ <code root>​lxc-create -n myfirstcontainer -t debian</​code>​
  
 Cela va nous installer une Debian Stable super minimale dans la même architecture que le système hôte (i386, AMD64 ...) dans ///​var/​lib/​lxc/​myfirstcontainer/​rootfs//​ et un fichier de configuration ///​var/​lib/​lxc/​myfirstcontayner/​config//​. Cela va nous installer une Debian Stable super minimale dans la même architecture que le système hôte (i386, AMD64 ...) dans ///​var/​lib/​lxc/​myfirstcontainer/​rootfs//​ et un fichier de configuration ///​var/​lib/​lxc/​myfirstcontayner/​config//​.
  
-Il existe quelques options pour ce //​template//,​ notamment pour le choix de la version. Par exemple pour installer une Debian Sid +Il existe quelques options pour ce //​template//,​ notamment pour le choix de la version. ​\\ 
 +Par exemple pour installer une Debian Sid :
 <code root>​lxc-create -n sid-container -t debian -- -r sid</​code>​ <code root>​lxc-create -n sid-container -t debian -- -r sid</​code>​
 +
 +==== Personnaliser un fichier template ====
 +
 +Si les templates fournis ne répondent pas à vos besoin, ils peuvent néanmoins constituer un point de départ à la confection de votre modèle. \\
 +Par exemple, les modifications suivantes vous permettront d'​avoir les locales françaises :
 +<code root>sed -i -e "​s/​locale-gen en_US.UTF-8 UTF-8/​locale-gen fr_FR.UTF-8/​g"​ /​usr/​share/​lxc/​templates/​lxc-debian
 +sed -i -e "​s/​update-locale LANG=en_US.UTF-8/​update-locale LANG=fr_FR.UTF-8/​g"​ /​usr/​share/​lxc/​templates/​lxc-debian</​code>​
  
 ==== 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 99: Ligne 135:
 <code root>​lxc-start -n myfirstcontainer -d</​code>​ <code root>​lxc-start -n myfirstcontainer -d</​code>​
  
-le **-n** pour indiquer le nom du conteneur, le **-d** pour le lancer en arrière plan ( non attaché à la console )+  * le **-n** pour indiquer le nom du conteneur, 
 +  * le **-d** pour le lancer en arrière plan ( non attaché à la console )
  
-<note warning>​Sans le **-d**, il ne sera pas possible de quitter proprement le conteneur. ​Utiliser ​lxc-start au premier plan seulement dans un but de debuggage.</​note>​ +<note warning>​Sans le **-d**, il ne sera pas possible de quitter proprement le conteneur. ​\\ 
- +Utilisez ​lxc-start au premier plan seulement dans un but de debuggage.</​note>​
-Pour un démarrage automatique+
  
 +Pour un démarrage automatique :
 <code root>ln -s /​var/​lib/​lxc/​mycontainer/​config /​etc/​lxc/​auto/​mycontainer</​code>​ <code root>ln -s /​var/​lib/​lxc/​mycontainer/​config /​etc/​lxc/​auto/​mycontainer</​code>​
  
 ==== Arrêter le conteneur ==== ==== Arrêter le conteneur ====
  
 +Arrêter le conteneur sans arrêt propre par SysV :
 <code root>​lxc-stop -n myfirstcontainer</​code>​ <code root>​lxc-stop -n myfirstcontainer</​code>​
  
-Arrête le conteneur sans arrêt propre par SysV. Pour un arrêt propre +Pour un arrêt propre ​:
 <code root>​lxc-halt -n myfirstcontainer</​code>​ <code root>​lxc-halt -n myfirstcontainer</​code>​
  
-==== Enter dans le conteneur ====+==== Afficher la liste des conteneurs ==== 
 + 
 +<code root>​lxc-ls</​code>​ 
 +<code config retour de la commande>​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 config retour de la commande>​state: ​  ​RUNNING 
 +pid:     ​19879</​code>​ 
 + 
 +==== Lister les conteneurs et leur état ==== 
 + 
 +<code root>​lxc-list</​code>​ 
 +<code config retour de la commande>​RUNNING 
 +  myfirstcontainer 
 + 
 +FROZEN 
 +  unautreconteneur 
 + 
 +STOPPED 
 +  monsecondconteneur</​code>​ 
 + 
 + 
 +==== Se connecter au conteneur ==== 
 + 
 +<code root>​lxc-console -n myfirstcontainer</​code>​ 
 + 
 +Le login/mot de passe est //​root/​root//​ [[doc:​systeme:​passwd|à changer à la première connexion]] :-) 
 +<code config séquence interactive>​Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself 
 + 
 + 
 +Debian GNU/Linux 7 myfirstcontainer tty1
  
-<​code>​lxc-console ​-n myfirstcontainer</​code>​+myfirstcontainer login: root 
 +Mot de passe :  
 +Dernière connexion : dimanche ​ 2 mars 2014 à 16:45:20 CET sur tty1 
 +Linux myfirstcontainer 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64
  
-Le login/mot de passe est //root/root// [[doc:​systeme:​passwd|à changer dès que possible]] :-)+The programs included with the Debian GNU/Linux system are free software; 
 +the exact distribution terms for each program are described in the 
 +individual files in /usr/share/doc/*/copyright.
  
 +Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 +permitted by applicable law.
 +root@myfirstcontainer:​~#​ df -h
 +Sys. fich.     ​Taille Util. Dispo Uti% Monté sur
 +tmpfs            372M   ​20K ​ 372M   1% /run
 +tmpfs            5,0M     ​0 ​ 5,0M   0% /run/lock
 +tmpfs            1,5G     ​0 ​ 1,5G   0% /run/shm
 +rootfs ​          ​7,​7G ​ 6,5G  865M  89% /
 +root@myfirstcontainer:​~#​ ifconfig eth0
 +eth0      Link encap:​Ethernet ​ HWaddr 00:​ff:​12:​34:​56:​79 ​
 +          inet adr:​192.168.1.57 ​ Bcast:​192.168.1.255 ​ Masque:​255.255.255.0
 +          adr inet6: fe80::​2ff:​12ff:​fe34:​5679/​64 Scope:​Lien</​code>​
  
 ==== Quitter le conteneur ==== ==== Quitter le conteneur ====
  
-//Ctrl+a q//+<​key>​C-a-q</key>
  
-==== Liens ====+===== TP associés =====
  
-[[https://​wiki.debian.org/​LXC|Le Wiki Debian]] (en)+  *[[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 =====
  
-[[https://​debian-facile.org/​topic-8480-mise-en-oeuvre-de-conteneur-page-1.html|Le forum DF]] :-)+  * [[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://​www.stgraber.org/​2013/​12/​20/​lxc-1-0-blog-post-series/​|10 articles intéressants pour lxc]] 
 +    * Dont: [[https://​www.stgraber.org/​2014/​01/​17/​lxc-1-0-unprivileged-containers/​|Lancer des conteneurs sans privilèges root]] (en)
  
  
doc/autres/vm/lxc.txt · Dernière modification: 01/10/2018 08:57 par smolski

Pied de page des forums

Propulsé par FluxBB