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:drf01 [2020/08/10 14:08] adminelearning:workbooks:docker1:drf01 [2022/12/15 16:44] (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 10: Ligne 10:
  
   * **DOF102 - Démarrer avec Docker**   * **DOF102 - Démarrer avec Docker**
 +    * Contenu du Module
     * Présentation de Docker     * Présentation de Docker
     * LAB #1 - Travailler avec Docker     * LAB #1 - Travailler avec Docker
Ligne 19: Ligne 20:
       * 1.6 - Créer une Image à partir d'un Conteneur Modifié       * 1.6 - Créer une Image à partir d'un Conteneur Modifié
       * 1.7 - Supprimer une Image       * 1.7 - Supprimer une Image
-      * 1.8 - Créer un Conteneur avec un Nom Specific+      * 1.8 - Créer un Conteneur avec un Nom Spécifique
       * 1.9 - Exécuter une Commande dans un Conteneur       * 1.9 - Exécuter une Commande dans un Conteneur
       * 1.10 - Injecter des Variables d'Environnement dans un Conteneur       * 1.10 - Injecter des Variables d'Environnement dans un Conteneur
Ligne 37: Ligne 38:
  
 =====Présentation de Docker===== =====Présentation de Docker=====
 +
 +La virtualisation classique nécessite l'utilisation d'un hyperviseur :
 +
 +{{ :elearning:workbooks:docker3:751px-container-vm-whatcontainer_2.png?nolink&600 |}}
  
 Docker est une application de virtualisation légère qui utilise des **images** et des **conteneurs**. Docker est une application de virtualisation légère qui utilise des **images** et des **conteneurs**.
  
-Une **image** est un paquet exécutable contenant tout ce qu'il est necessaire afin d'exécuter un logiciel donné, incluant :+Une **image** est un paquet exécutable contenant tout ce qu'il est nécessaire afin d'exécuter un logiciel donné, incluant :
  
   * le code   * le code
Ligne 51: Ligne 56:
  
 Les conteneurs exécutent des applications nativement en utilisant le noyau de la machine hôte. De ce fait les performances d'un conteneur sont supérieures à celles d'une machine virtuelle qui doit passer par un hyperviseur pour accéder aux ressources de la machine hôte. Les conteneurs exécutent des applications nativement en utilisant le noyau de la machine hôte. De ce fait les performances d'un conteneur sont supérieures à celles d'une machine virtuelle qui doit passer par un hyperviseur pour accéder aux ressources de la machine hôte.
 +
 +{{ :elearning:workbooks:docker3:docker-container-architecture.png?nolink&600 |}}
  
 Docker existe en deux versions **Docker-CE** (Docker Community Edition) et **Docker-EE** (Docker Enterprise Edition). Pour consulter les différences entre les deux versions, consultez le lien  **[[https://docs.docker.com/engine/installation/]]**. Docker existe en deux versions **Docker-CE** (Docker Community Edition) et **Docker-EE** (Docker Enterprise Edition). Pour consulter les différences entre les deux versions, consultez le lien  **[[https://docs.docker.com/engine/installation/]]**.
 +
 +Pour gérer le système de fichiers du conteneur, Docker utilisait au départ le filesystem AUFS. AUFS est un système de fichiers de la famille UnionFS. Un système de fichier de type UnionFS assemble des repertoires multiples les uns sur les autres pour ensuite les présenter sous forme d'un repertoire unique contenant les objets les plus récents grâce à un union mount. Les repertoires sous AUFS sont appelés des **branches** et se trouvent dans **/var/lib/docker/aufs** :
 +
 +{{ :elearning:workbooks:docker3:aufs_layers.jpg?nolink&600 |}}
 +
 +Le système de fichiers AUFS a été ensuite remplacé dans Docker par le système de fichiers **OverlayFS**. Ce système de fichiers combine deux répertoires appelés **Layers**. Le layer inférieur porte le nom **lowerdir** tandis que le niveau au dessus est appelé le **upperdir**. La vue unifiée porte le nom **merged**. Dans le cas où les layers de conteneur et de l'image contiennent le même objet, le conteneur "gagne" et cache l'objet dans l'image :
 +
 +{{ :elearning:workbooks:docker3:overlay_constructs.jpg?nolink&600 |Image 2}}
 +
 +Le système de fichiers OverlayFS ne sait gérer que deux niveaux. Ceci implique une utilisation excessive d'inodes dans la cas d'une image à de niveaux multiples car chaque image doit résider dans son propre repertoire qui se situe dans **/var/lib/docker/overlay**. Des liens physiques sont ensuite utilisés pour référencer des données dans les niveaux inférieurs.
 +
 +Cette limitation a donné lieu à l'introduction du système de fichiers **Overlay2** actuellement utilisé par Docker. Overlay2 est capable de gérer 128 layers.
  
 =====LAB #1 - Travailler avec Docker===== =====LAB #1 - Travailler avec Docker=====
Ligne 171: Ligne 190:
 </code> </code>
  
-<WRAP center round important> +Docker est composé de trois éléments : un serveur, un client et un ou plusieur Repositories ou Dépôts :
-**Important** - Docker est composé de trois éléments : un serveur, un client et un ou plusieur Repositories ou Dépôts. Nous reviendrons sur les dépôts dans le détail plus tard dans ce cours. +
-</WRAP>+
  
-Re-démarrez la machine virtuelle avant de poursuivre : +{{ :elearning:workbooks:docker3:architecture.png?nolink&600 |}}
- +
-<code> +
-root@debian9:~# shutdown -r now +
-</code>+
  
 ====1.2 - Démarrer un Conteneur==== ====1.2 - Démarrer un Conteneur====
Ligne 483: Ligne 496:
  
 <code> <code>
-root@debian9:~# docker search --stars=5 centos 
-Flag --stars has been deprecated, use --filter=stars=3 instead 
-NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED 
-centos                            The official build of CentOS.                   5288                [OK]                 
-ansible/centos7-ansible           Ansible on Centos7                              121                                     [OK] 
-jdeathe/centos-ssh                CentOS-6 6.10 x86_64 / CentOS-7 7.5.1804 x86…   107                                     [OK] 
-consol/centos-xfce-vnc            Centos container with "headless" VNC session…   84                                      [OK] 
-imagine10255/centos6-lnmp-php56   centos6-lnmp-php56                              53                                      [OK] 
-centos/mysql-57-centos7           MySQL 5.7 SQL database server                   50                                       
-tutum/centos                      Simple CentOS docker image with SSH access      44                                       
-gluster/gluster-centos            Official GlusterFS Image [ CentOS-7 +  Glust…   40                                      [OK] 
-openshift/base-centos7            A Centos7 derived base image for Source-To-I…   40                                       
-centos/postgresql-96-centos7      PostgreSQL is an advanced Object-Relational …   37                                       
-centos/python-35-centos7          Platform for building and running Python 3.5…   34                                       
-kinogmt/centos-ssh                CentOS with SSH                                 26                                      [OK] 
-centos/php-56-centos7             Platform for building and running PHP 5.6 ap…   20                                       
-openshift/jenkins-2-centos7       A Centos7 based Jenkins v2.x image for use w…   20                                       
-pivotaldata/centos-gpdb-dev       CentOS image for GPDB development. Tag names…   10                                       
-openshift/wildfly-101-centos7     A Centos7 based WildFly v10.1 image for use …    
-root@debian9:~#                     
 root@debian9:~# docker search --filter=stars=5 centos root@debian9:~# docker search --filter=stars=5 centos
 NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
Ligne 707: Ligne 700:
 </code> </code>
  
-====1.8 - Créer un Conteneur avec un Nom Spécific====+====1.8 - Créer un Conteneur avec un Nom Spécifique====
  
-Créez maintenant un conteneur avec un nom spécific :+Créez maintenant un conteneur avec un nom spécifique :
  
 <code> <code>
Ligne 968: Ligne 961:
 </code> </code>
  
-===1.12 - Mapper des Ports d'un Conteneur====+====1.12 - Mapper des Ports d'un Conteneur=====
  
 Démarrer un conteneur de nginx sur le port localhost 81 : Démarrer un conteneur de nginx sur le port localhost 81 :
Ligne 1261: Ligne 1254:
  
 ====1.21 - Installer un logiciel dans le conteneur=== ====1.21 - Installer un logiciel dans le conteneur===
 +
 +Réparez les dépôts de CentOS 8 :
 +
 +<code>
 +[root@86252a3f00f4 /]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*
 +[root@86252a3f00f4 /]# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*
 +[root@86252a3f00f4 /]# yum upgrade -y
 +</code>
  
 Créez le fichier **/etc/yum.repos.d/mongodb-org-4.2.repo** : Créez le fichier **/etc/yum.repos.d/mongodb-org-4.2.repo** :
Ligne 1570: Ligne 1571:
  
 ----- -----
-<html> + 
-<div align="center"> +Copyright © 2022 Hugh Norris.
-Copyright © 2020 Hugh Norris +
-</div> +
-</html>+
  
Menu