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:redhat:rh134:l108 [2024/11/01 12:08] adminelearning:workbooks:redhat:rh134:l108 [2024/11/22 08:50] (Version actuelle) admin
Ligne 30: Ligne 30:
       * 3.1 - Création d'un Conteneur       * 3.1 - Création d'un Conteneur
       * 3.2 - Démarrage d'un Conteneur       * 3.2 - Démarrage d'un Conteneur
-      * 3.3 - Exécuter une Commande dans un Conteneur +      * 3.3 - Exécution d'une Commande dans un Conteneur 
-      * 3.4 - Supprimer des Images et des Conteneurs+      * 3.4 - Suppression des Images et des Conteneurs
     * LAB #4 - Gestion du Stockage et du Réseau     * LAB #4 - Gestion du Stockage et du Réseau
       * 4.1 - Gestion du Stockage Persistant       * 4.1 - Gestion du Stockage Persistant
Ligne 75: Ligne 75:
  
 Graphiquement, les différences peuvent être consultées en consultant les deux images suivantes : Graphiquement, les différences peuvent être consultées en consultant les deux images suivantes :
- 
-===Machines Virtuelles=== 
- 
-{{ :elearning:workbooks:docker3:751px-container-vm-whatcontainer_2.png?nolink&600 |}} 
- 
-===Conteneurs=== 
- 
-{{ :elearning:workbooks:docker3:docker-container-architecture.png?nolink&600 |}} 
  
 ====Conteneurs Rootless et Rootful==== ====Conteneurs Rootless et Rootful====
Ligne 118: Ligne 110:
 Les images des conteneurs sont construites conformément à des spécifications, telles que la spécification du format d'image de l'**Open Container Initiative** (OCI). Ces spécifications définissent le format des images de conteneurs, ainsi que les métadonnées relatives aux systèmes d'exploitation hôtes des conteneurs et aux architectures matérielles que l'image prend en charge. Les images des conteneurs sont construites conformément à des spécifications, telles que la spécification du format d'image de l'**Open Container Initiative** (OCI). Ces spécifications définissent le format des images de conteneurs, ainsi que les métadonnées relatives aux systèmes d'exploitation hôtes des conteneurs et aux architectures matérielles que l'image prend en charge.
  
-Un registre de conteneurs est un référentiel permettant de stocker et de récupérer des images de conteneurs. Un développeur pousse ou télécharge des images de conteneurs dans un registre de conteneurs. Ensuite le dévellopeur extrait ou télécharge des images de conteneurs d'un registre vers un système local pour exécuter des conteneurs.+Un registre de conteneurs est un référentiel permettant de stocker et de récupérer des images de conteneurs. Un développeur pousse ou télécharge des images de conteneurs dans un registre de conteneurs. Ensuite le développeur extrait ou télécharge des images de conteneurs d'un registre vers un système local pour exécuter des conteneurs.
  
 Il est possible d'utiliser un registre public contenant des images de tiers ou un registre privé contrôlé par une organisation. La source des images de conteneurs est importante. Comme pour tout autre logiciel, il faut savoir si on peut faire confiance au code de l'image de conteneur. Les politiques varient d'un registre à l'autre en ce qui concerne la fourniture, l'évaluation et le test des images de conteneurs qui leur sont soumises. Il est possible d'utiliser un registre public contenant des images de tiers ou un registre privé contrôlé par une organisation. La source des images de conteneurs est importante. Comme pour tout autre logiciel, il faut savoir si on peut faire confiance au code de l'image de conteneur. Les politiques varient d'un registre à l'autre en ce qui concerne la fourniture, l'évaluation et le test des images de conteneurs qui leur sont soumises.
Ligne 295: Ligne 287:
 </code> </code>
  
-Pour vérifier si ce fichier est pris en compte, concultez la sortie de la commande **podman info** :+Pour vérifier si ce fichier est pris en compte, consultez la sortie de la commande **podman info** :
  
 <code> <code>
Ligne 485: Ligne 477:
 ^ Commande ^ Description ^ ^ Commande ^ Description ^
 | **FROM** | Définit l'image à partir de laquelle sera construite la nouvelle image. | | **FROM** | Définit l'image à partir de laquelle sera construite la nouvelle image. |
-| **RUN** |  Lance un processus dans la construction de la nouvelle image. |+| **RUN** | Lance un processus dans la construction de la nouvelle image. |
 | **CMD** | Définit la commande qui sera exécutée dans le conteneur lors de sa création à partir de la nouvelle image. | | **CMD** | Définit la commande qui sera exécutée dans le conteneur lors de sa création à partir de la nouvelle image. |
  
Ligne 600: Ligne 592:
 =====LAB #3 - Gestion des Conteneurs===== =====LAB #3 - Gestion des Conteneurs=====
  
-Un conteneur puet être dans un de cinq états :+Un conteneur peut être dans un de cinq états :
  
 ^ Etat ^ Description ^ ^ Etat ^ Description ^
Ligne 611: Ligne 603:
 ====3.1 - Création d'un Conteneur==== ====3.1 - Création d'un Conteneur====
  
-Créez un conteneur dénommé **python36** à partir de la nouvelle image. Noytez que l'image est référencée par son **IMAGE ID** :+Créez un conteneur dénommé **python36** à partir de la nouvelle image. Notez que l'image est référencée par son **IMAGE ID** :
  
 <code> <code>
Ligne 625: Ligne 617:
 </code> </code>
  
-POur consulter la liste de tous les conteneurs, ajoutez l'option **-a** à la commande précédente :+Pour consulter la liste de tous les conteneurs, ajoutez l'option **-a** à la commande précédente :
  
 +<code>
 [trainee@redhat9 ~]$ podman ps -a [trainee@redhat9 ~]$ podman ps -a
 CONTAINER ID  IMAGE                   COMMAND               CREATED         STATUS      PORTS       NAMES CONTAINER ID  IMAGE                   COMMAND               CREATED         STATUS      PORTS       NAMES
Ligne 657: Ligne 650:
 </code> </code>
  
-====3.3 - Exécuter une Commande dans un Conteneur====+====3.3 - Exécution d'une Commande dans un Conteneur====
  
-Pour exécuter une commande à l'intérieur d'un conteneur en cours d'exécution, utilisez la commande **porman exec** :+Pour exécuter une commande à l'intérieur d'un conteneur en cours d'exécution, utilisez la commande **podman exec** :
  
 <code> <code>
Ligne 726: Ligne 719:
 </code> </code>
  
-====3.4 - Supprimer des Images et des Conteneurs====+====3.4 - Suppression des Images et des Conteneurs====
  
-En essayant de supprimer l'image **egistry.access.redhat.com/ubi8/python-38**, vous consterez que ceci n'est pas possible à cause de la présence du conteneur **python38** qui dépend de l'image :+En essayant de supprimer l'image **registry.access.redhat.com/ubi8/python-38**, vous constaterez que ceci n'est pas possible à cause de la présence du conteneur **python38** qui dépend de l'image :
  
 <code> <code>
Ligne 818: Ligne 811:
 Notez que le conteneur crée avec les variables d'environnement n'a pas été créé en spécifiant l'option **--name**. De ce fait, le conteneur a été automatiquement créé avec un nom généré aléatoirement. Notez que le conteneur crée avec les variables d'environnement n'a pas été créé en spécifiant l'option **--name**. De ce fait, le conteneur a été automatiquement créé avec un nom généré aléatoirement.
  
-Supprimez maintenant le conteneur **db01**. Notez que vous pouver référencer le conteneur par une partie de son **CONTAINER ID**, à condition que cette partie soit unique :+Supprimez maintenant le conteneur **db01**. Notez que vous que l'on peut référencer le conteneur par une partie de son **CONTAINER ID**, à condition que cette partie soit unique :
  
 <code> <code>
Ligne 827: Ligne 820:
 Supprimez le deuxième conteneur en stipulant son nom : Supprimez le deuxième conteneur en stipulant son nom :
  
 +<code>
 [trainee@redhat9 ~]$ podman rm boring_ganguly [trainee@redhat9 ~]$ podman rm boring_ganguly
 Error: cannot remove container afc0cc8427677eed8cf17ef1ee9669b937ca25ccd322c066ee9c46e070baf3d3 as it is running - running or paused containers cannot be removed without force: container state improper Error: cannot remove container afc0cc8427677eed8cf17ef1ee9669b937ca25ccd322c066ee9c46e070baf3d3 as it is running - running or paused containers cannot be removed without force: container state improper
Ligne 936: Ligne 930:
 </code> </code>
  
-Afin de comprendre la natyure du problème, consultez les journaux du conteneur avec la commande **podman container logs** :+Afin de comprendre la nature du problème, consultez les journaux du conteneur avec la commande **podman container logs** :
  
 <code> <code>
Ligne 1024: Ligne 1018:
 </code> </code>
  
-Pour forcer l'utilisation du SC correct, il faut ajouter la lettre **Z** à la fin de la valeur de l'option **-v** de la commande **podman run**. Par exemple, **-v chemin_hôte:chemin_conteneur:Z**. Relancez donc la commande en spécifiant Z **et** l'option **--replace** qui remplacerer le conteneur actuel :+Pour forcer l'utilisation du SC correct, il faut ajouter la lettre **Z** à la fin de la valeur de l'option **-v** de la commande **podman run**. Par exemple, **-v chemin_hôte:chemin_conteneur:Z**. Relancez donc la commande en spécifiant Z **et** l'option **--replace** qui va remplacer le conteneur actuel :
  
 <code> <code>
Ligne 1072: Ligne 1066:
 </code> </code>
  
-Depuis la version 4.0, Podman supporte deux réseaux pour les conteneurs, **Netavark** et **CNI**. À partir de RHEL 9, les systèmes utilisent **Netavark** par défaut. Pour vérifier quel back-end réseau est utilisé, exécutez la commande podman info suivante :+Depuis la version 4.0, Podman supporte deux réseaux pour les conteneurs, **Netavark** et **CNI**. À partir de RHEL 9, les systèmes utilisent **Netavark** par défaut. Pour vérifier quel backend réseau est utilisé, exécutez la commande podman info suivante :
  
 <code> <code>
Ligne 1082: Ligne 1076:
 </code> </code>
  
-Pour modifier le back-end utilisé, il convient de modifier la directive **network_backend** dans le fichier **/usr/share/containers/containers.conf** :+Pour modifier le backend utilisé, il convient de modifier la directive **network_backend** dans le fichier **/usr/share/containers/containers.conf** :
  
 <code> <code>
Ligne 1128: Ligne 1122:
 </code> </code>
  
-Créez maintenant un duexième réseau appelé *db_net** :+Créez maintenant un deuxième réseau appelé **db_net** :
  
 <code> <code>
Ligne 1170: Ligne 1164:
 </code> </code>
  
-Créez maintenant le conteneur **client** en le placant dans le réseau **db_net** :+Créez maintenant le conteneur **client** en le plaçant dans le réseau **db_net** :
  
 <code> <code>
Ligne 1265: Ligne 1259:
 </code> </code>
  
-Constatez que les deux conteneurs se trouvent dans les deux réseaux, **backend** et db_net** :+Constatez que les deux conteneurs se trouvent dans les deux réseaux, **backend** et **db_net** :
  
 <code> <code>
Ligne 1359: Ligne 1353:
 =====LAB #5 - Gestion des Conteneurs en tant que Services Système===== =====LAB #5 - Gestion des Conteneurs en tant que Services Système=====
  
-Sans faire appel à un Orchestrateur de Conteneurs tel Kubernetes, il est possible de gérer des petites infrastructures en utilsant simplement **-systemd**.+Sans faire appel à un Orchestrateur de Conteneurs tel Kubernetes, il est possible de gérer des petites infrastructures en utilisant simplement **-systemd**.
  
 ====5.1 - Création du Gestionnaire de Conteneurs==== ====5.1 - Création du Gestionnaire de Conteneurs====
Ligne 1379: Ligne 1373:
 </code> </code>
  
-Denevez l'utilisateur et constatez l'erreur lors de l'exécution de la commande **podman info** :+Devenez l'utilisateur et constatez l'erreur lors de l'exécution de la commande **podman info** :
  
 <code> <code>
Menu