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:drf02 [2020/08/10 13:51] – admin | elearning:workbooks:docker1:drf02 [2021/12/29 10:32] (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~~ | ||
Ligne 9: | Ligne 9: | ||
=====Contenu du Module===== | =====Contenu du Module===== | ||
- | * **DOF103 - Gérer | + | * **DOF103 - Gérer les Images Docker** |
- | * LAB #4 - Re-créer une image officielle docker | + | * Contenu du Module |
- | * Utilisation d'un Dockerfile | + | * LAB #1 - Re-créer une image officielle docker |
- | * FROM | + | * 1.1 - Utilisation d'un Dockerfile |
- | * RUN | + | * 1.2 - FROM |
- | * ENV | + | * 1.3 - RUN |
- | * VOLUME | + | * 1.4 - ENV |
- | * COPY | + | * 1.5 - VOLUME |
- | * ENTRYPOINT | + | * 1.6 - COPY |
- | * EXPOSE | + | * 1.7 - ENTRYPOINT |
- | * CMD | + | * 1.8 - EXPOSE |
- | * Autres Commandes | + | * 1.9 - CMD |
- | * LAB #5 - Créer un Dockerfile | + | * 1.10 - Autres Commandes |
- | * Création et test du script | + | * LAB #2 - Créer un Dockerfile |
- | * Bonnes Pratiques liées au Cache | + | * 2.1 - Création et test du script |
+ | * 2.2 - Bonnes Pratiques liées au Cache | ||
- | =====LAB #4 - Re-créer une image officielle docker===== | + | =====LAB #1 - Re-créer une image officielle docker===== |
- | ====Utilisation d'un Dockerfile==== | + | ====1.1 - Utilisation d'un Dockerfile==== |
Bien que la compilation des images soient assuré par Docker Hub, il est tout à fait possible de compiler une image " | Bien que la compilation des images soient assuré par Docker Hub, il est tout à fait possible de compiler une image " | ||
Ligne 77: | Ligne 78: | ||
wget -O / | wget -O / | ||
export GNUPGHOME=" | export GNUPGHOME=" | ||
- | gpg --batch --keyserver | + | gpg --batch --keyserver |
- | gpg --batch --verify / | + | # gpg --batch --verify / |
command -v gpgconf && gpgconf --kill all || :; \ | command -v gpgconf && gpgconf --kill all || :; \ | ||
rm -r " | rm -r " | ||
Ligne 96: | Ligne 97: | ||
export GNUPGHOME=" | export GNUPGHOME=" | ||
for key in $GPG_KEYS; do \ | for key in $GPG_KEYS; do \ | ||
- | gpg --batch --keyserver | + | gpg --batch --keyserver |
done; \ | done; \ | ||
gpg --batch --export $GPG_KEYS > / | gpg --batch --export $GPG_KEYS > / | ||
Ligne 498: | Ligne 499: | ||
Examinons chaque commande dans le Dockerfile : | Examinons chaque commande dans le Dockerfile : | ||
- | ====FROM==== | + | ====1.2 - FROM==== |
< | < | ||
Ligne 506: | Ligne 507: | ||
Cette ligne définit l' | Cette ligne définit l' | ||
- | ====RUN==== | + | ====1.3 - RUN==== |
< | < | ||
Ligne 593: | Ligne 594: | ||
</ | </ | ||
- | ====ENV==== | + | ====1.4 - ENV==== |
Cette commande permet de fixer la valeur d'une variable d' | Cette commande permet de fixer la valeur d'une variable d' | ||
Ligne 616: | Ligne 617: | ||
**et** dans les conteneurs générés à partir de l' | **et** dans les conteneurs générés à partir de l' | ||
- | ====VOLUME==== | + | ====1.5 - VOLUME==== |
< | < | ||
Ligne 626: | Ligne 627: | ||
Cette commande expose les répertoires passés en argument afin qu'ils puissent être mappés vers des répertoires sur la machine hôte ou ailleurs, tel que nous avons vu avec l' | Cette commande expose les répertoires passés en argument afin qu'ils puissent être mappés vers des répertoires sur la machine hôte ou ailleurs, tel que nous avons vu avec l' | ||
- | ====COPY==== | + | ====1.6 - COPY==== |
< | < | ||
Ligne 636: | Ligne 637: | ||
Cette commande permet de récupérer les fichiers dans le contexte et de les copier dans l' | Cette commande permet de récupérer les fichiers dans le contexte et de les copier dans l' | ||
- | Rappelez-vous de l' | + | **Attention** : tous les fichiers dans le contexte sont inclus dans l' |
Il est possible d' | Il est possible d' | ||
Ligne 644: | Ligne 645: | ||
</ | </ | ||
- | ====ENTRYPOINT==== | + | ====1.7 - ENTRYPOINT==== |
< | < | ||
Ligne 694: | Ligne 695: | ||
si la valeur du paramètre passé à entrypoint.sh est **mongod**, le script affecte l' | si la valeur du paramètre passé à entrypoint.sh est **mongod**, le script affecte l' | ||
- | Ce fichier finit par " | + | Ce fichier finit par " |
- | + | ||
- | < | + | |
- | root@debian9: | + | |
- | mongo2 | + | |
- | root@debian9: | + | |
- | root@a2b3a0f53f62:/# | + | |
- | / | + | |
- | root@a2b3a0f53f62:/# | + | |
- | exit | + | |
- | root@debian9: | + | |
- | </ | + | |
<WRAP center round important> | <WRAP center round important> | ||
- | **Important** - Notez que la compilation d'une image se fait à l' | + | **Important** - Notez que la compilation d'une image se fait à l' |
</ | </ | ||
- | ====EXPOSE==== | + | ====1.8 - EXPOSE==== |
< | < | ||
Ligne 719: | Ligne 709: | ||
</ | </ | ||
- | Cette commande permet d' | + | Cette commande permet d' |
- | < | + | ====1.9 - CMD==== |
- | root@debian9: | + | |
- | mongo2 | + | |
- | root@debian9: | + | |
- | b3380889eb750298710e956f284f291b786f4382465d247ae58f9b73d2d276ca | + | |
- | root@debian9: | + | |
- | CONTAINER ID IMAGE | + | |
- | b3380889eb75 | + | |
- | bf72bd700870 | + | |
- | d2ddb4f8ca8a | + | |
- | c080793965de | + | |
- | 4f157e179134 | + | |
- | 04b5ab87539a | + | |
- | </ | + | |
- | + | ||
- | ====CMD==== | + | |
< | < | ||
Ligne 746: | Ligne 721: | ||
Ceci représente la valeur du paramètre par défaut si aucun paramètre n'est spécifié à la fin de la commande docker run. | Ceci représente la valeur du paramètre par défaut si aucun paramètre n'est spécifié à la fin de la commande docker run. | ||
- | ====Autres Commandes==== | + | ====1.10 - Autres Commandes==== |
Le Dockerfile peut aussi contenir les commandes suivantes : | Le Dockerfile peut aussi contenir les commandes suivantes : | ||
Ligne 810: | Ligne 785: | ||
< | < | ||
+ | root@debian9: | ||
+ | mongo1 | ||
root@debian9: | root@debian9: | ||
root@debian9: | root@debian9: | ||
Ligne 991: | Ligne 968: | ||
</ | </ | ||
- | =====LAB #5 - Créer un Dockerfile===== | + | =====LAB #2 - Créer un Dockerfile===== |
- | ====Création et test du script==== | + | ====2.1 - Création et test du script==== |
Créez un répertoire nommé myDocker : | Créez un répertoire nommé myDocker : | ||
Ligne 1208: | Ligne 1185: | ||
</ | </ | ||
- | ====Bonnes Pratiques liées au Cache==== | + | ====2.2 - Bonnes Pratiques liées au Cache==== |
===Opérations Non-Idempotentes=== | ===Opérations Non-Idempotentes=== | ||
Ligne 1342: | Ligne 1319: | ||
----- | ----- | ||
- | < | + | |
- | <div align=" | + | Copyright © 2022 Hugh Norris. |
- | Copyright © 2020 Hugh NORRIS | + | |
- | </ | + | |
- | </ | + |