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édentesRévision précédente
Prochaine révision
Révision précédente
elearning:workbooks:docker1:dfr00 [2020/08/10 14:44] adminelearning:workbooks:docker1:dfr00 [2021/12/29 10:32] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version : **2020.01**+Version : **2022.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
Ligne 11: Ligne 11:
   * **DOF101 - La Virtualisation par Isolation**   * **DOF101 - La Virtualisation par Isolation**
     * Contenu du Module     * Contenu du Module
-    * LAB #1 - Utilisation de l'Infrastructure 
-      * 1.1 - Formations en Face-à-Face Pédagogique (FFP) 
-      * 1.2 - Formations à Distance (FAD) 
-        * Linux, MacOS et Windows 10 muni du client ssh 
-        * Windows 7 et Windows 10 sans client ssh 
-        * Lancement de la Machine Virtuelle Debian_9 
-      * 1.3 - Connexion à la Machine Virtuelle 
-        * Linux, MacOS, Windows 10 muni du client ssh et FAD 
-        * Windows 7 et Windows 10 sans client ssh en FFP 
     * Présentation de la Virtualisation par Isolation     * Présentation de la Virtualisation par Isolation
       * Historique       * Historique
     * Présentation des Namespaces     * Présentation des Namespaces
     * Présentation des CGroups     * Présentation des CGroups
-      * LAB #- Travailler avec les CGroups +      * LAB #- Travailler avec les CGroups 
-        * 2.1 - Limitation de la Mémoire +        * 1.1 - Limitation de la Mémoire 
-        * 2.2 - Le Paquet cgroup-tools+        * 1.2 - Le Paquet cgroup-tools
           * La commande cgcreate           * La commande cgcreate
           * La Commande cgexec           * La Commande cgexec
           * La Commande cgdelete           * La Commande cgdelete
-          * La Commande cgexec+          * Le Fichier /etc/cgconfig.conf
     * Présentation de Linux Containers     * Présentation de Linux Containers
-      * LAB #- Travailler avec LXC +      * LAB #- Travailler avec LXC 
-        * 3.1 - Installation +        * 2.1 - Installation 
-        * 3.2 - Création d'un Conteneur Simple +        * 2.2 - Création d'un Conteneur Simple 
-        * 3.3 - Démarrage d'un Conteneur Simple +        * 2.3 - Démarrage d'un Conteneur Simple 
-        * 3.4 - S'attacher à un Conteneur Simple +        * 2.4 - S'attacher à un Conteneur Simple 
-        * 3.5 - Commandes LXC de Base+        * 2.5 - Commandes LXC de Base
           * La Commande lxc-console           * La Commande lxc-console
           * La Commande lxc-stop           * La Commande lxc-stop
Ligne 45: Ligne 36:
           * La Commande lxc-unfreeze           * La Commande lxc-unfreeze
           * Autres commandes           * Autres commandes
-        * 3.6 - Création d'un Conteneur Non-Priviligié+        * 2.6 - Création d'un Conteneur Non-Privilégié
           * User Namespaces           * User Namespaces
-          * Création d'un Utilisteur Dédié+          * Création d'un Utilisateur Dédié
           * Création du Mappage           * Création du Mappage
           * Création du Conteneur           * Création du Conteneur
           * Contrôle du Mappage           * Contrôle du Mappage
-        * 3.7 - Création d'un Conteneur Ephémère+        * 2.7 - Création d'un Conteneur Éphémère
           * La Commande lxc-copy           * La Commande lxc-copy
-        * 3.8 - Sauvegarde des Conteneurs+        * 2.8 - Sauvegarde des Conteneurs
           * La Commande lxc-snapshot           * La Commande lxc-snapshot
- 
-=====LAB #1 - Utilisation de l'Infrastructure===== 
- 
-====1.1 - Formations en Face-à-Face Pédagogique (FFP) ==== 
- 
-Si vous suivez cette formation en Centre de Formation, vous avez besoin d'importer la machine virtuelle qui vous a été fournie. 
- 
-Ouvrez VirtualBox et importez la machine virtuelle **Debian_9** : 
- 
-  Fichier > Importer un appareil virtuel ... 
- 
-La machine virtuelle a été configurée ainsi : 
- 
-^ Machine ^ Nom d'hôte ^ Adresse IP ^ Redirection de Port ^ 
-| Debian_9 | debian9 | 10.0.2.15 | 2022 | 
- 
-Démarrez ensuite la machine virtuelle **Debian_9**. 
- 
-====1.2 - Formations à Distance (FAD) ==== 
- 
-Vous disposez d'un serveur dédié, pré-installé, pré-configuré et hébergé dans le cloud.  
- 
-Connectez-vous en ssh à votre serveur dédié : 
- 
-===Linux, MacOS et Windows 10 muni du client ssh=== 
- 
-Ouvrez un terminal ou CMD et tapez la commande suivante : 
- 
-<code> 
-$ ssh -l desktop serverXX.ittraining.network 
-</code> 
- 
-où **XX** représente le numéro de votre serveur dédié. Entrez ensuite le mot de passe qui vous a été fourni. 
- 
-===Windows 7 et Windows 10 sans client ssh=== 
- 
-Ouvrez **putty** et utilisez les informations suivantes pour vous connecter à votre serveur dédié : 
- 
-  * Host Name --> serverXX.ittraining.network 
-  * Port --> 22 
- 
-Au prompt, connectez-vous en tant que **desktop** avec le mot de passe qui vous a été fourni. 
- 
-===Lancement de la Machine Virtuelle Debian_9=== 
- 
-La machine virtuelle a été configurée ainsi : 
- 
-^ Machine ^ Nom d'hôte ^ Adresse IP ^ Redirection de Port ^ 
-| Debian_9 | debian9 | 10.0.2.15 | 2022 | 
- 
-Pour lancer la machine **Debian_9**, utilisez la commande suivante à partir de votre serveur dédié : 
- 
-<code> 
-desktop@serverXX:~$ VBoxManage startvm Debian_9 --type headless 
-Waiting for VM "Debian_9" to power on... 
-VM "Debian_9" has been successfully started. 
-</code> 
- 
-====1.3 - Connexion à la Machine Virtuelle==== 
- 
-Les noms d'utilisateurs et les mots de passe sont : 
- 
-^ Utilisateur ^ Mot de Passe ^ 
-| trainee | trainee | 
-| root | fenestros | 
- 
-Vous devez vous connecter à la machine virtuelle **Debian_9** d'une des deux façons suivantes : 
- 
-===Linux, MacOS, Windows 10 muni du client ssh et FAD=== 
- 
-Ouvrez un terminal et tapez la commande suivante pour vous connecter à la machine **Debian_9** : 
- 
-<code> 
-$ ssh -l trainee localhost -p 2022 
-</code> 
- 
-===Windows 7 et Windows 10 sans client ssh en FFP=== 
- 
-Ouvrez **putty** et utilisez les informations suivantes pour vous connecter à **Debian_9** : 
- 
-  * Host Name --> localhost 
-  * Port --> 2022 
  
 =====Présentation de la Virtualisation par Isolation===== =====Présentation de la Virtualisation par Isolation=====
Ligne 160: Ligne 69:
 Les Groupes de Contrôles (Control Groups) aussi appelés **CGroups**, sont une nouvelle façon de contrôler et de limiter des ressources. Les groupes de contrôle permettent l'allocation de ressources, même d'une manière dynamique pendant que le système fonctionne, telles le temps processeur, la mémoire système, la bande réseau, ou une combinaison de ces ressources parmi des groupes de tâches (processus) définis par l'utilisateur et exécutés sur un système. Les Groupes de Contrôles (Control Groups) aussi appelés **CGroups**, sont une nouvelle façon de contrôler et de limiter des ressources. Les groupes de contrôle permettent l'allocation de ressources, même d'une manière dynamique pendant que le système fonctionne, telles le temps processeur, la mémoire système, la bande réseau, ou une combinaison de ces ressources parmi des groupes de tâches (processus) définis par l'utilisateur et exécutés sur un système.
  
-Les CGroups sont organisés de manière hiérarchique, comme des processus. Par contre, la comparaison entre les deux démontre que tandis que les processus se trouvent dans une arborescence unique descandant tous du processus init et héritant de l'environnement de leurs parents, les CGroups peuvent être multiples donnant lieu à des arborescences ou **hiérarchies** multiples qui héritent de certains attributs de leurs groupes de contrôle parents.+Les CGroups sont organisés de manière hiérarchique, comme des processus. Par contre, la comparaison entre les deux démontre que tandis que les processus se trouvent dans une arborescence unique descendant tous du processus init et héritant de l'environnement de leurs parents, les CGroups peuvent être multiples donnant lieu à des arborescences ou **hiérarchies** multiples qui héritent de certains attributs de leurs groupes de contrôle parents.
  
 Ces hiérarchies multiples et séparés sont necéssaires parce que chaque hiérarchie est attaché à un ou plusieurs sous-système(s) aussi appelés des **Contrôleurs de Ressources** ou simplement des **Contrôleurs**. Les contrôleurs disponibles sont : Ces hiérarchies multiples et séparés sont necéssaires parce que chaque hiérarchie est attaché à un ou plusieurs sous-système(s) aussi appelés des **Contrôleurs de Ressources** ou simplement des **Contrôleurs**. Les contrôleurs disponibles sont :
Ligne 167: Ligne 76:
   * **cpu** - utilisé pour fournir aux tâches des groupes de contrôle accès au CPU grâce au planificateur,   * **cpu** - utilisé pour fournir aux tâches des groupes de contrôle accès au CPU grâce au planificateur,
   * **cpuacct** - utilisé pour produire des rapports automatiques sur les ressources CPU utilisées par les tâches dans un groupe de contrôle,   * **cpuacct** - utilisé pour produire des rapports automatiques sur les ressources CPU utilisées par les tâches dans un groupe de contrôle,
-  * **cpuset** - utilisé pour assigner des CPU individuels sur un système multicoeur et des noeuds de mémoire à des tâches dans un groupe de contrôle,+  * **cpuset** - utilisé pour assigner des CPU individuels sur un système multicœur et des nœuds de mémoire à des tâches dans un groupe de contrôle,
   * **devices** - utilisé pour autoriser ou pour refuser l'accès des tâches aux périphériques dans un groupe de contrôle,   * **devices** - utilisé pour autoriser ou pour refuser l'accès des tâches aux périphériques dans un groupe de contrôle,
   * **freezer** - utilisé pour suspendre ou pour réactiver les tâches dans un groupe de contrôle,   * **freezer** - utilisé pour suspendre ou pour réactiver les tâches dans un groupe de contrôle,
Ligne 279: Ligne 188:
 En utilisant Systemd, plusieurs ressources peuvent être limitées : En utilisant Systemd, plusieurs ressources peuvent être limitées :
  
-  * **CPUShares** - par défault 1024,+  * **CPUShares** - par défaut 1024,
   * **MemoryLimit** - limite exprimée en Mo ou en Go. Pas de valeur par défaut,   * **MemoryLimit** - limite exprimée en Mo ou en Go. Pas de valeur par défaut,
   * **BlockIOWeight** - valeur entre 10 et 1000. Pas de valeur par défaut,   * **BlockIOWeight** - valeur entre 10 et 1000. Pas de valeur par défaut,
Ligne 290: Ligne 199:
 </WRAP> </WRAP>
  
-====LAB #- Travailler avec les CGroups====+====LAB #- Travailler avec les CGroups====
  
-===2.1 - Limitation de la Mémoire===+===1.1 - Limitation de la Mémoire===
  
 Pour travailler avec les CGroups dans Debian 9, il convient d'installer les outils nécessaires : Pour travailler avec les CGroups dans Debian 9, il convient d'installer les outils nécessaires :
Ligne 437: Ligne 346:
 </WRAP> </WRAP>
  
-===2.2 - Le Paquet cgroup-tools===+===1.2 - Le Paquet cgroup-tools===
  
 Le paquet **cgroup-tools** installe des commandes dites //de facilité// dont : Le paquet **cgroup-tools** installe des commandes dites //de facilité// dont :
Ligne 513: Ligne 422:
 </code> </code>
  
-==La Commande cgexec==+==Le Fichier /etc/cgconfig.conf==
  
-Afin de les rendre persistents, il convient de créer les CGroups dans le fichier **/etc/cgconfig.conf** :+Afin de les rendre persistants, il convient de créer les CGroups dans le fichier **/etc/cgconfig.conf** :
  
 <code> <code>
Ligne 603: Ligne 512:
 =====Présentation de Linux Containers===== =====Présentation de Linux Containers=====
  
-====LAB #- Travailler avec LXC====+====LAB #- Travailler avec LXC====
  
-===3.1 - Installation===+===2.1 - Installation===
  
 Les outils indispensables à l'utilisation des Linux Containers sous Debian sont inclus dans le paquet **lxc** : Les outils indispensables à l'utilisation des Linux Containers sous Debian sont inclus dans le paquet **lxc** :
Ligne 630: Ligne 539:
 </code> </code>
  
-===3.2 - Création d'un Conteneur Simple===+===2.2 - Création d'un Conteneur Simple===
  
-Créez un conteneur simple en utilsant la comande suivante :+Créez un conteneur simple en utilisant la commande suivante :
  
 <code> <code>
Ligne 645: Ligne 554:
 </WRAP> </WRAP>
  
-Le **backingstore** (// méthode de stockage//) utilisé par défaut est **dir** ce qui implqiue que le **rootfs** du conteneur se trouve sur disque dans le répertoire **/var/lib/lxc/** :+Le **backingstore** (// méthode de stockage//) utilisé par défaut est **dir** ce qui implique que le **rootfs** du conteneur se trouve sur disque dans le répertoire **/var/lib/lxc/** :
  
 <code> <code>
Ligne 666: Ligne 575:
   * rbd (CephFS)   * rbd (CephFS)
  
-===3.3 - Démarrage d'un Conteneur Simple===+===2.3 - Démarrage d'un Conteneur Simple===
  
 Pour démarrer le conteneur, il convient d'utiliser la commande **lxc-start** : Pour démarrer le conteneur, il convient d'utiliser la commande **lxc-start** :
Ligne 674: Ligne 583:
 </code> </code>
  
-===3.4 - S'attacher à un Conteneur Simple===+===2.4 - S'attacher à un Conteneur Simple===
  
 Pour s'attacher au conteneur démarré, il convient d'utiliser la commande **lxc-attach** : Pour s'attacher au conteneur démarré, il convient d'utiliser la commande **lxc-attach** :
Ligne 713: Ligne 622:
 </code> </code>
  
-===3.5 - Commandes LXC de Base===+===2.5 - Commandes LXC de Base===
  
 ==La Commande lxc-console== ==La Commande lxc-console==
Ligne 835: Ligne 744:
 | lxc-cgroup | Permet de manipuler à chaud les CGroups pour un conteneur donné | | lxc-cgroup | Permet de manipuler à chaud les CGroups pour un conteneur donné |
 | lxc-device | Permet de rajouter à chaud les devices à un conteneur | | lxc-device | Permet de rajouter à chaud les devices à un conteneur |
-| lxc-usernsexec | Permet d'exécuter des commandes en tant que root dans un conteneur non-priviligié +| lxc-usernsexec | Permet d'exécuter des commandes en tant que root dans un conteneur non-privilégié 
-| lxc-wait | Permet d'attendre à ce qu'un conteneur ait atteint un certain état avnt de continuer |+| lxc-wait | Permet d'attendre à ce qu'un conteneur ait atteint un certain état avant de continuer |
  
-===3.6 - Création d'un Conteneur Non-Priviligié===+===2.6 - Création d'un Conteneur Non-Privilégié===
  
 ==User Namespaces== ==User Namespaces==
  
-Un conteneur priviligié est un conteneur lancé par l'utilisateur **root** tandis qu'un conteneur non-priviligié est lancé par un utilisteur autre que root. Un conteneur priviligié est moins sécurisé qu'un conteneur non-priviligié mais ne necéssite pas la gestion du mappage d'UID.+Un conteneur privilégié est un conteneur lancé par l'utilisateur **root** tandis qu'un conteneur non-privilégié est lancé par un utilisateur autre que root. Un conteneur privilégié est moins sécurisé qu'un conteneur non-privilégié mais ne nécessite pas la gestion du mappage d'UID.
  
-Le mappage d'UID est une fonctionalité du noyau Linux appelée **user namespaces** ou encore **userns**. Cette fonctionalité permet de mapper une plage d'UID de la machine hôte vers un utilisateur dont l'UID est 0 dans un autre espace de noms.+Le mappage d'UID est une fonctionnalité du noyau Linux appelée **user namespaces** ou encore **userns**. Cette fonctionnalité permet de mapper une plage d'UID de la machine hôte vers un utilisateur dont l'UID est 0 dans un autre espace de noms.
  
-==Création d'un Utilisteur Dédié==+==Création d'un Utilisateur Dédié==
  
-Commencez par créer l'utilisteur **lxcnp** dédié à la gestion des conteneurs non-priviligiés :+Commencez par créer l’utilisateur **lxcnp** dédié à la gestion des conteneurs non-privilégiés :
  
 <code> <code>
Ligne 931: Ligne 840:
 ==Création du Conteneur== ==Création du Conteneur==
  
-Créez maintenant un conteneur non-priviligié appelé **lxc-bb-np** à partir du gabarit **busybox** :+Créez maintenant un conteneur non-privilégié appelé **lxc-bb-np** à partir du gabarit **busybox** :
  
 <code> <code>
Ligne 1024: Ligne 933:
 </code> </code>
  
-===3.7 - Création d'un Conteneur Ephémère===+===2.7 - Création d'un Conteneur Éphémère===
  
-Par défaut les conteneurs LXC sont permenants. Il est possible de créer un conteneur éphémère, c'est-à-dire un conteneur où toutes les données sont détruites à l'arrêt de celui-ci, en utilisant la commande **lxc-copy** ainsi que l'option de cette commande **--epheremal** ou **-e**. +Par défaut les conteneurs LXC sont permanents. Il est possible de créer un conteneur éphémère, c'est-à-dire un conteneur où toutes les données sont détruites à l'arrêt de celui-ci, en utilisant la commande **lxc-copy** ainsi que l'option de cette commande **--epheremal** ou **-e**. 
  
 ==La Commande lxc-copy== ==La Commande lxc-copy==
  
-Notez que le containeur d'origine doit être arrêté lors de l'utilisation de la commande **lxc-copy** :+Notez que le conteneur d'origine doit être arrêté lors de l'utilisation de la commande **lxc-copy** :
  
 <code> <code>
Ligne 1121: Ligne 1030:
 </WRAP> </WRAP>
  
-===3.8 - Sauvegarde des Conteneurs===+===2.8 - Sauvegarde des Conteneurs===
  
 Un conteneur LXC peut être sauvegardé de trois façons différentes : Un conteneur LXC peut être sauvegardé de trois façons différentes :
Ligne 1203: Ligne 1112:
  
 ----- -----
-<html> + 
-<div align="center"> +Copyright © 2022 Hugh Norris.
-Copyright © 2020 Hugh Norris +
-</div> +
-</html>+
Menu