Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
elearning:workbooks:docker1:drf04 [2020/02/08 12:40] – créée 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~~ | ||
- | ======DOF105 - Stocker les Images Docker====== | + | ======DOF105 - Validation de la Formation====== |
- | 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 | ||
- | </ | ||
- | </ |