Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| elearning:workbooks:docker1:drf04 [2020/02/15 13:23] – admin | elearning:workbooks:docker1:drf04 [2022/05/19 09:48] (Version actuelle) – admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ~~PDF: | ~~PDF: | ||
| - | Version : **2020.01** | + | Version : **2022.01** |
| Dernière mise-à-jour : ~~LASTMOD~~ | Dernière mise-à-jour : ~~LASTMOD~~ | ||
| - | ======DOF201 | + | ======DOF105 |
| - | Cette unité contient un LAB : | + | =====Contenu du Module===== |
| - | * LAB #1 - Installer un Registre Privé. | + | * **DOF105 |
| + | * Contenu du Module | ||
| + | * Support de Cours | ||
| + | * Rappel du Programme de la Formation | ||
| + | * Évaluation de la Formation | ||
| + | * Validation des Acquis | ||
| - | =====LAB #1 - Installer un Registre Privé===== | + | =====Support de Cours===== |
| - | ====Préparation==== | + | L' |
| - | Créez un répertoire nommé myDocker | + | L' |
| - | < | + | * de mesurer le niveau du stagiaire avant la formation et celui atteint en fin de formation grâce aux tests de validations des acquis, |
| - | root@debian9: | + | * de suivre du travail de chaque participant en termes de temps passé dans chaque module grâce à un reporting détaillé. |
| - | root@debian9: | + | |
| - | root@debian9: | + | |
| - | </ | + | |
| - | Créez le fichier myEntrypoint.sh | + | L' |
| - | < | + | * de télécharger des supports de cours et des LABS au format PDF le dernier jour de la formation, |
| - | root@debian9: | + | * de refaire les LABS en mode autonome en cas de missions décalées en relation avec le contenu de la formation initiale, |
| - | root@debian9: | + | * de rester en contact avec le formateur en cas de problèmes en production liés au contenu du cours, |
| - | #!/bin/bash | + | * de consulter les mises à jour du contenu des supports de cours pendant la période de l' |
| - | if [ -z " | + | * d' |
| - | echo "La variable myVariable doit être renseignée" | + | |
| - | return 1 | + | |
| - | fi | + | |
| - | while true; | + | =====Rappel du Programme de la Formation===== |
| - | do | + | |
| - | echo $1 \($(date +%H: | + | |
| - | sleep " | + | |
| - | done | + | |
| - | </ | + | |
| - | Testez ce script : | + | * **DOF100 - Présentation de la Formation**. |
| + | * Contenu du Module | ||
| + | * Prérequis | ||
| + | * Matériel | ||
| + | * Logiciels | ||
| + | * Internet | ||
| + | * Programme de la Formation | ||
| + | * Évaluation des Compétences en Amont | ||
| - | < | + | * **DOF101 - La Virtualisation par Isolation**. |
| - | root@debian9: | + | * Présentation de la Virtualisation par Isolation |
| - | salut (20:04:39) | + | * Historique |
| - | salut (20:04:42) | + | * Présentation des Namespaces |
| - | salut (20:04:45) | + | * Présentation des CGroups |
| - | salut (20:04:48) | + | * LAB #1 - Travailler avec les CGroups |
| - | salut (20:04:51) | + | * 1.1 - Limitation de la Mémoire |
| - | ^C | + | * 1.2 - Le Paquet cgroup-tools |
| - | root@debian9: | + | * La commande cgcreate |
| - | </ | + | * La Commande cgexec |
| + | * La Commande cgdelete | ||
| + | * Le Fichier | ||
| + | * Présentation de Linux Containers | ||
| + | * LAB #2 - Travailler avec LXC | ||
| + | * 2.1 - Installation | ||
| + | * 2.2 - Création d'un Conteneur Simple | ||
| + | * 2.3 - Démarrage d'un Conteneur Simple | ||
| + | * 2.4 - S' | ||
| + | * 2.5 - Commandes LXC de Base | ||
| + | * La Commande lxc-console | ||
| + | * La Commande lxc-stop | ||
| + | * La Commande lxc-execute | ||
| + | * La Commande lxc-info | ||
| + | * La Commande lxc-freeze | ||
| + | * La Commande lxc-unfreeze | ||
| + | * Autres commandes | ||
| + | * 2.6 - Création d'un Conteneur Non-Privilégié | ||
| + | * User Namespaces | ||
| + | * Création d'un Utilisateur Dédié | ||
| + | * Création du Mappage | ||
| + | * Création du Conteneur | ||
| + | * Contrôle du Mappage | ||
| + | * 2.7 - Création d'un Conteneur Éphémère | ||
| + | * La Commande lxc-copy | ||
| + | * 2.8 - Sauvegarde des Conteneurs | ||
| + | * La Commande lxc-snapshot | ||
| - | Rendez ce script exécutable : | + | * **DOF102 - Démarrer avec Docker**. |
| + | * Présentation de Docker | ||
| + | * LAB #1 - Travailler avec Docker | ||
| + | * 1.1 - Installer docker | ||
| + | * 1.2 - Démarrer un Conteneur | ||
| + | * 1.3 - Consulter la Liste des Conteneurs et Images | ||
| + | * 1.4 - Rechercher une Image dans un Dépôt | ||
| + | * 1.5 - Supprimer un Conteneur d'une Image | ||
| + | * 1.6 - Créer une Image à partir d'un Conteneur Modifié | ||
| + | * 1.7 - Supprimer une Image | ||
| + | * 1.8 - Créer un Conteneur avec un Nom Spécifique | ||
| + | * 1.9 - Exécuter une Commande dans un Conteneur | ||
| + | * 1.10 - Injecter des Variables d' | ||
| + | * 1.11 - Modifier le Nom d' | ||
| + | * 1.12 - Mapper des Ports d'un Conteneur | ||
| + | * 1.13 - Démarrer un Conteneur en mode Détaché | ||
| + | * 1.14 - Accéder aux Services d'un Conteneur de l' | ||
| + | * 1.15 - Arrêter et Démarrer un Conteneur | ||
| + | * 1.16 - Utiliser des Signaux avec un Conteneur | ||
| + | * 1.17 - Forcer la Suppression d'un Conteneur en cours d' | ||
| + | * 1.18 - Utilisation Simple d'un Volume | ||
| + | * 1.19 - Télécharger une image sans créer un conteneur | ||
| + | * 1.20 - S' | ||
| + | * 1.21 - Installer un logiciel dans le conteneur | ||
| + | * 1.22 - Utilisation de la commande docker commit | ||
| + | * 1.23 - Se connecter au serveur du conteneur de l' | ||
| - | < | + | * **DOF103 - Gérer les Images Docker**. |
| - | root@debian9: | + | * Contenu du Module |
| - | </ | + | * LAB #1 - Re-créer une image officielle docker |
| + | * 1.1 - Utilisation d'un Dockerfile | ||
| + | * 1.2 - FROM | ||
| + | * 1.3 - RUN | ||
| + | * 1.4 - ENV | ||
| + | * 1.5 - VOLUME | ||
| + | * 1.6 - COPY | ||
| + | * 1.7 - ENTRYPOINT | ||
| + | * 1.8 - EXPOSE | ||
| + | * 1.9 - CMD | ||
| + | * 1.10 - Autres Commandes | ||
| + | * LAB #2 - Créer un Dockerfile | ||
| + | * 2.1 - Création et test du script | ||
| + | * 2.2 - Bonnes Pratiques liées au Cache | ||
| - | Créez maintenant le fichier | + | |
| + | * LAB #1 - Gestion des Volumes | ||
| + | * 1.1 - Gestion Automatique par Docker | ||
| + | * 1.2 - Gestion Manuelle d'un Volume | ||
| + | * LAB #2 - Gestion du Réseau | ||
| + | * 2.1 - L' | ||
| + | * Bridge | ||
| + | * Host | ||
| + | * None | ||
| + | * Liens | ||
| + | * 2.2 - Lancer Wordpress | ||
| + | * 2.3 - Gestion d'une Architecture de Microservices | ||
| + | * LAB #3 - Superviser les Conteneurs | ||
| + | * 3.1 - Les Journaux | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| - | < | + | * **DOF105 - Validation de la Formation**. |
| - | root@debian9: | + | * Support de Cours |
| - | root@debian9: | + | * Rappel du Programme de la Formation |
| - | FROM centos: | + | * Validation des acquis globale |
| - | MAINTAINER i2tch " | + | * Évaluation de la Formation |
| - | COPY myEntrypoint.sh / | + | |
| - | ENV myVariable 3 | + | |
| - | ENTRYPOINT ["/ | + | |
| - | CMD [" | + | |
| - | </ | + | |
| - | Générez maintenant l' | + | =====Évaluation de la Formation===== |
| - | < | + | Afin de valider votre formation, veuillez compléter l’Évaluation de la Formation ainsi que la Validation des Acquis. |
| - | root@debian9: | + | |
| - | Sending build context to Docker daemon | + | |
| - | Step 1/6 : FROM centos: | + | |
| - | | + | |
| - | Step 2/6 : MAINTAINER i2tch " | + | |
| - | | + | |
| - | Removing intermediate container 02c700ed04da | + | |
| - | | + | |
| - | Step 3/6 : COPY myEntrypoint.sh / | + | |
| - | | + | |
| - | Step 4/6 : ENV myVariable 3 | + | |
| - | | + | |
| - | Removing intermediate container 3288bf6291ad | + | |
| - | | + | |
| - | Step 5/6 : ENTRYPOINT ["/ | + | |
| - | | + | |
| - | Removing intermediate container 8dcba2c41520 | + | |
| - | | + | |
| - | Step 6/6 : CMD [" | + | |
| - | | + | |
| - | Removing intermediate container f891fbcfaad0 | + | |
| - | | + | |
| - | Successfully built 7925ba23abb2 | + | |
| - | Successfully tagged i2tch/ | + | |
| - | </ | + | |
| - | ====Installer un Registre Local==== | ||
| - | |||
| - | Pour installer un registre privé, il convient d' | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | root@debian9: | ||
| - | Unable to find image ' | ||
| - | 2.0: Pulling from library/ | ||
| - | 4d2e9ae40c41: | ||
| - | a3ed95caeb02: | ||
| - | 7c8152785df5: | ||
| - | 8b04aafd7cd8: | ||
| - | c97c75d2d42e: | ||
| - | 4b3ef98bba76: | ||
| - | edee0288d356: | ||
| - | ea2a9399d365: | ||
| - | ddf532273b60: | ||
| - | e9e91aa1843e: | ||
| - | 6144b0ffbb4c: | ||
| - | Digest: sha256: | ||
| - | Status: Downloaded newer image for registry: | ||
| - | c4c7cad999cdd77df78a21897bd11c4742a094c1c76a2134fbe4a4d2d92bff0e | ||
| - | </ | ||
| - | |||
| - | Utilisez maintenant **lynx** à partir d'un terminal de votre machine **hôte** pour vérifier que le régistre est actif : | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | {}root@debian9: | ||
| - | </ | ||
| - | |||
| - | <WRAP center round important> | ||
| - | **Important** - Notez la réponse du serveur est **{}** soit une liste JSON vide. | ||
| - | </ | ||
| - | |||
| - | Renommez l' | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | </ | ||
| - | |||
| - | <WRAP center round important> | ||
| - | **Important** - Notez que le tag **i2tch/ | ||
| - | </ | ||
| - | |||
| - | Envoyez votre image **localhost: | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | The push refers to a repository [localhost: | ||
| - | 873a8ac77d4d: | ||
| - | b362758f4793: | ||
| - | latest: digest: sha256: | ||
| - | </ | ||
| - | |||
| - | Constatez maintenant la présence de l' | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | {" | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | REPOSITORY | ||
| - | testcache | ||
| - | < | ||
| - | i2tch/ | ||
| - | localhost: | ||
| - | i2tch/ | ||
| - | i2tch/ | ||
| - | i2tch/ | ||
| - | ubuntu | ||
| - | centos | ||
| - | nginx | ||
| - | debian | ||
| - | hello-world | ||
| - | registry | ||
| - | </ | ||
| - | |||
| - | ====Créer un Serveur de Registre Dédié==== | ||
| - | |||
| - | Actuellement, | ||
| - | |||
| - | Arrêtez votre machine virtuelle Debian_9. Créez le réseau NAT **NatNetwork** : | ||
| - | |||
| - | Fichier > Paramètres > Réseau > bouton + > OK | ||
| - | |||
| - | Configurez la carte réseau pour la machine virtuelle Debian_9 en " | ||
| - | |||
| - | Créez un clone de la machine virtuelle appelé **Registry** en **réinitialisant** l' | ||
| - | |||
| - | Créez les redirections de ports dans le réseau NAT **NatNetwork** de VirtualBox : | ||
| - | |||
| - | Fichier > Paramètres > Réseau > NatNetwork > Redirection de ports | ||
| - | |||
| - | ^ Nom ^ Protocole ^ IP hôte ^ Port hôte ^ IP invité ^ Port invité ^ | ||
| - | | Debian_9 | TCP | 127.0.0.1 | 2022 | 10.0.2.15 | 22 | | ||
| - | | Registry | TCP | 127.0.0.1 | 4022 | 10.0.2.4 | 22 | | ||
| - | |||
| - | Démarrez les deux machines virtuelles. | ||
| - | |||
| - | Modifiez le nom d' | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | root@debian9: | ||
| - | registry | ||
| - | </ | ||
| - | |||
| - | Editez le fichier **/ | ||
| - | |||
| - | < | ||
| - | root@registry: | ||
| - | root@registry: | ||
| - | 127.0.0.1 localhost | ||
| - | 127.0.1.1 debian9.i2tch.loc | ||
| - | 10.0.2.4 myregistry.i2tch.loc | ||
| - | 10.0.2.15 | ||
| - | |||
| - | # The following lines are desirable for IPv6 capable hosts | ||
| - | ::1 | ||
| - | ff02::1 ip6-allnodes | ||
| - | ff02::2 ip6-allrouters | ||
| - | </ | ||
| - | |||
| - | Créez maintenant un certificat auto-signé avec openssl : | ||
| - | |||
| - | < | ||
| - | root@registry: | ||
| - | Generating a 4096 bit RSA private key | ||
| - | ............................................................++ | ||
| - | .......................................................................................................................................++ | ||
| - | writing new private key to ' | ||
| ----- | ----- | ||
| - | You are about to be asked to enter information that will be incorporated | ||
| - | into your certificate request. | ||
| - | What you are about to enter is what is called a Distinguished Name or a DN. | ||
| - | There are quite a few fields but you can leave some blank | ||
| - | For some fields there will be a default value, | ||
| - | If you enter ' | ||
| - | ----- | ||
| - | Country Name (2 letter code) [AU]:FR | ||
| - | State or Province Name (full name) [Some-State]: | ||
| - | Locality Name (eg, city) []:Toulon | ||
| - | Organization Name (eg, company) [Internet Widgits Pty Ltd]:I2TCH LTD | ||
| - | Organizational Unit Name (eg, section) []:TRAINING | ||
| - | Common Name (e.g. server FQDN or YOUR name) []: | ||
| - | Email Address []: | ||
| - | root@debian9:/# | ||
| - | domain.crt | ||
| - | </ | ||
| - | Supprimez le conteneur **registry** : | + | Copyright © 2022 Hugh Norris - Document non-contractuel. Le programme peut être modifié sans préavis. |
| - | < | ||
| - | root@registry:/# | ||
| - | registry | ||
| - | </ | ||
| - | |||
| - | Créez un conteneur en mode sécurisé avec TLS à partir de l' | ||
| - | |||
| - | < | ||
| - | root@registry:/# | ||
| - | 943c01b67cf3f461270a55ac3d9df6622cc9d74e5f272e17153183ff29ee5932 | ||
| - | root@debian9:/# | ||
| - | |||
| - | root@registry:/# | ||
| - | CONTAINER ID IMAGE | ||
| - | 943c01b67cf3 | ||
| - | ea239635e141 | ||
| - | 21b0490a93dd | ||
| - | b9773e4aa06d | ||
| - | bdb4bc0f81de | ||
| - | f5b45072b831 | ||
| - | 9731a48f126a | ||
| - | eacd70596e23 | ||
| - | cffb4456e9c4 | ||
| - | </ | ||
| - | |||
| - | ===Configurer le Client=== | ||
| - | |||
| - | Supprimez le conteneur **registry** : | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | CONTAINER ID IMAGE | ||
| - | c4c7cad999cd | ||
| - | ea239635e141 | ||
| - | 21b0490a93dd | ||
| - | b9773e4aa06d | ||
| - | bdb4bc0f81de | ||
| - | f5b45072b831 | ||
| - | 9731a48f126a | ||
| - | eacd70596e23 | ||
| - | cffb4456e9c4 | ||
| - | root@debian9: | ||
| - | registry | ||
| - | root@debian9: | ||
| - | CONTAINER ID IMAGE | ||
| - | ea239635e141 | ||
| - | 21b0490a93dd | ||
| - | b9773e4aa06d | ||
| - | bdb4bc0f81de | ||
| - | f5b45072b831 | ||
| - | 9731a48f126a | ||
| - | eacd70596e23 | ||
| - | cffb4456e9c4 | ||
| - | </ | ||
| - | |||
| - | ainsi que l' | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | REPOSITORY | ||
| - | testcache | ||
| - | < | ||
| - | i2tch/ | ||
| - | localhost: | ||
| - | < | ||
| - | i2tch/ | ||
| - | i2tch/ | ||
| - | i2tch/ | ||
| - | ubuntu | ||
| - | centos | ||
| - | nginx | ||
| - | debian | ||
| - | hello-world | ||
| - | registry | ||
| - | |||
| - | root@debian9: | ||
| - | Untagged: registry: | ||
| - | Untagged: registry@sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | Deleted: sha256: | ||
| - | |||
| - | root@debian9: | ||
| - | REPOSITORY | ||
| - | testcache | ||
| - | < | ||
| - | i2tch/ | ||
| - | localhost: | ||
| - | < | ||
| - | i2tch/ | ||
| - | i2tch/ | ||
| - | i2tch/ | ||
| - | ubuntu | ||
| - | centos | ||
| - | nginx | ||
| - | debian | ||
| - | hello-world | ||
| - | </ | ||
| - | |||
| - | Renommez l' | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | root@debian9: | ||
| - | REPOSITORY | ||
| - | testcache | ||
| - | < | ||
| - | i2tch/ | ||
| - | localhost: | ||
| - | myregistry: | ||
| - | < | ||
| - | i2tch/ | ||
| - | i2tch/ | ||
| - | i2tch/ | ||
| - | ubuntu | ||
| - | centos | ||
| - | nginx latest | ||
| - | debian | ||
| - | hello-world | ||
| - | </ | ||
| - | |||
| - | Editez le fichier **/ | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | root@debian9: | ||
| - | 127.0.0.1 localhost | ||
| - | 127.0.1.1 debian9.i2tch.loc | ||
| - | 10.0.2.4 myregistry.i2tch.loc | ||
| - | 10.0.2.15 | ||
| - | |||
| - | # The following lines are desirable for IPv6 capable hosts | ||
| - | ::1 | ||
| - | ff02::1 ip6-allnodes | ||
| - | ff02::2 ip6-allrouters | ||
| - | </ | ||
| - | |||
| - | De la machine virtuelle **registry** envoyez une copie du fichier **/ | ||
| - | |||
| - | < | ||
| - | root@registry: | ||
| - | The authenticity of host ' | ||
| - | ECDSA key fingerprint is 79: | ||
| - | Are you sure you want to continue connecting (yes/no)? yes | ||
| - | Warning: Permanently added ' | ||
| - | trainee@10.0.2.15' | ||
| - | domain.crt | ||
| - | </ | ||
| - | |||
| - | Dans la machine virtuelle **Debian_9**, | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | root@debian9: | ||
| - | </ | ||
| - | |||
| - | Testez la réponse du registre : | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | |||
| - | </ | ||
| - | |||
| - | Finalement, envoyez l' | ||
| - | |||
| - | < | ||
| - | root@debian9: | ||
| - | The push refers to a repository [myregistry: | ||
| - | 873a8ac77d4d: | ||
| - | b362758f4793: | ||
| - | latest: digest: sha256: | ||
| - | </ | ||
| - | |||
| - | ----- | ||
| - | < | ||
| - | <div align=" | ||
| - | Copyright © 2020 Hugh NORRIS | ||
| - | </ | ||
| - | </ | ||