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:drf03 [2021/04/05 11:03] – admin | elearning:workbooks:docker1:drf03 [2021/12/29 10:32] (Version actuelle) – admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
~~PDF: | ~~PDF: | ||
- | Version : **2021.01** | + | Version : **2022.01** |
Dernière mise-à-jour : ~~LASTMOD~~ | Dernière mise-à-jour : ~~LASTMOD~~ | ||
- | ======DOF104 - Gestion des Volumes, du Réseau et des Ressources====== | + | ======DOF104 - Gestion des Volumes, du Réseau et de la Supervision |
=====Contenu du Module===== | =====Contenu du Module===== | ||
Ligne 26: | Ligne 26: | ||
* 3.2 - Les Processus | * 3.2 - Les Processus | ||
* 3.3 - L' | * 3.3 - L' | ||
- | * LAB #4 - Gestion des Ressources | ||
- | * 4.1 - Limiter la Mémoire | ||
=====LAB #1 - Gestion des Volumes===== | =====LAB #1 - Gestion des Volumes===== | ||
Ligne 302: | Ligne 300: | ||
</ | </ | ||
- | https://docs.docker.com/storage/volumes/ | + | Pour créer un volume à utiliser avec un conteneur utilisez la commande docker volume **create** |
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | myvolume | ||
+ | </code> | ||
+ | |||
+ | Pour lister les volumes, utilisez la commande docker volume **ls** : | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | DRIVER | ||
+ | local | ||
+ | </code> | ||
+ | |||
+ | Notez maintenant l' | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | [ | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | </ | ||
+ | |||
+ | Créez un fichier témoin dans le répertoire **/ | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | </ | ||
+ | |||
+ | Démarrez maintenant un conteneur qui utilise ce volume : | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | root@673f9c8bc837:/# | ||
+ | bin boot dev etc home lib lib32 lib64 libx32 | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important> | ||
+ | **Important** : Notez l' | ||
+ | </ | ||
+ | |||
+ | Notez que le fichier témoin **test-file** est disponible dans le conteneur : | ||
+ | |||
+ | < | ||
+ | root@673f9c8bc837:/# | ||
+ | root@673f9c8bc837:/ | ||
+ | test-file | ||
+ | </ | ||
+ | |||
+ | Créez un deuxième fichier témoin dans le répertoire **/ | ||
+ | |||
+ | < | ||
+ | root@673f9c8bc837:/ | ||
+ | root@673f9c8bc837:/ | ||
+ | </ | ||
+ | |||
+ | Contrôlez maintenant le contenu du répertoire **/var/lib/docker/ | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | total 0 | ||
+ | -rw-r--r-- 1 root root 0 avril 15 10:22 container_volume | ||
+ | -rw-r--r-- 1 root root 0 avril 15 10:16 test-file | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important> | ||
+ | **Important** : Notez que les deux fichiers témoins sont visibles. | ||
+ | </WRAP> | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | ubuntu-volume | ||
+ | root@debian9: | ||
+ | total 0 | ||
+ | -rw-r--r-- 1 root root 0 avril 15 10:22 container_volume | ||
+ | -rw-r--r-- 1 root root 0 avril 15 10:16 test-file | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important> | ||
+ | **Important** : Notez que les deux fichiers témoins sont toujours visibles. | ||
+ | </ | ||
+ | |||
+ | Créez maintenant un deuxième conteneur en spécifiant un volume qui n' | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | root@b1476960de63:/# | ||
+ | bin boot dev etc home lib lib32 lib64 libx32 | ||
+ | root@b1476960de63:/# | ||
+ | root@b1476960de63:/ | ||
+ | root@b1476960de63:/ | ||
+ | exit | ||
+ | </ | ||
+ | |||
+ | Notez que Docker a automatiquement créé le volume : | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | DRIVER | ||
+ | local | ||
+ | local | ||
+ | root@debian9: | ||
+ | total 0 | ||
+ | -rw-r--r-- 1 root root 0 avril 15 12:06 file_myvolume1 | ||
+ | </ | ||
+ | |||
+ | Un autre type de volume utilisable avec Docker est le **Bindmount**. Un Bindmount : | ||
+ | |||
+ | * dépend de la structure de l' | ||
+ | * ne peut pas être contrôler par la CLI Docker. | ||
+ | |||
+ | Pour créer un Bindmount, commencez par créer le répertoire **bindmount** dans **/root** : | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | root@debian9: | ||
+ | </ | ||
+ | |||
+ | Montez le Bindmount à l' | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | root@7b13fe558984:/# | ||
+ | bin bindmount | ||
+ | root@7b13fe558984:/# | ||
+ | root@7b13fe558984:/ | ||
+ | test_bind | ||
+ | root@7b13fe558984:/ | ||
+ | root@7b13fe558984:/ | ||
+ | container_bind | ||
+ | root@7b13fe558984:/ | ||
+ | exit | ||
+ | </ | ||
+ | |||
+ | Conrôlez la présence du fichier témoin : | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | total 0 | ||
+ | -rw-r--r-- 1 root root 0 avril 15 10:32 container_bind | ||
+ | -rw-r--r-- 1 root root 0 avril 15 10:32 test_bind | ||
+ | root@debian9: | ||
+ | ubuntu-volume | ||
+ | root@debian9: | ||
+ | total 0 | ||
+ | -rw-r--r-- 1 root root 0 avril 15 10:32 container_bind | ||
+ | -rw-r--r-- 1 root root 0 avril 15 10:32 test_bind | ||
+ | </ | ||
+ | |||
+ | Notez que la CLI Docker n'a pas de connaissance de ce point de montage : | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | DRIVER | ||
+ | local | ||
+ | </ | ||
=====LAB #2 - Gestion du Réseau===== | =====LAB #2 - Gestion du Réseau===== | ||
Ligne 696: | Ligne 859: | ||
Ce type de réseau est utilisé dans le cas où le réseau ne doit pas être isolé de l' | Ce type de réseau est utilisé dans le cas où le réseau ne doit pas être isolé de l' | ||
- | Dans le cas de la machine virtuelle, l' | + | Dans le cas de la machine virtuelle, l' |
< | < | ||
- | root@debian9: | + | root@debian9: |
- | 2: enp0s3: < | + | 2: ens18: < |
link/ether 08: | link/ether 08: | ||
- | inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic | + | inet 10.0.2.60/24 brd 10.0.2.255 scope global dynamic |
| | ||
inet6 fe80:: | inet6 fe80:: | ||
Ligne 719: | Ligne 882: | ||
inet6 ::1/128 scope host | inet6 ::1/128 scope host | ||
| | ||
- | 2: enp0s3: < | + | 2: ens18: < |
link/ether 08: | link/ether 08: | ||
- | inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic | + | inet 10.0.2.60/24 brd 10.0.2.255 scope global dynamic |
| | ||
inet6 fe80:: | inet6 fe80:: | ||
Ligne 736: | Ligne 899: | ||
</ | </ | ||
- | Le but de ce type de réseau est de permettre l' | + | Le but de ce type de réseau est de permettre l' |
Pour cette raison, dans le cas de l' | Pour cette raison, dans le cas de l' | ||
Ligne 889: | Ligne 1052: | ||
< | < | ||
- | root@debian9: | + | root@debian9: |
Unable to find image ' | Unable to find image ' | ||
latest: Pulling from library/ | latest: Pulling from library/ | ||
Ligne 922: | Ligne 1085: | ||
root@debian9: | root@debian9: | ||
CONTAINER ID IMAGE | CONTAINER ID IMAGE | ||
- | 9eb2f7fbfbd2 | + | 9eb2f7fbfbd2 |
67831dacf002 | 67831dacf002 | ||
</ | </ | ||
Ligne 929: | Ligne 1092: | ||
< | < | ||
- | root@debian9: | + | root@debian9: |
| | ||
| | ||
Ligne 1028: | Ligne 1191: | ||
</ | </ | ||
- | =====LAB #4 - Gestion des Ressources===== | + | ----- |
- | La gestion de base des ressources allouées à un conteneur peut être réalisée par l' | + | Copyright © 2022 Hugh Norris. |
- | + | ||
- | * --memory | + | |
- | * --cpu-shares | + | |
- | + | ||
- | ====4.1 - Limiter la Mémoire==== | + | |
- | + | ||
- | Par exemple, exécutez un conteneur à partir de l' | + | |
- | + | ||
- | < | + | |
- | root@debian9: | + | |
- | fc8ce16b3ec86433662719ca1f710a0588951d4f4abb8d90159b5953f419eef7 | + | |
- | </ | + | |
- | + | ||
- | Exécutez ensuite la commande **docker stats** pour visualiser la limite de la mémoire : | + | |
- | + | ||
- | < | + | |
- | CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O | + | |
- | fc8ce16b3ec8 | + | |
- | </ | + | |
- | + | ||
- | <WRAP center round important> | + | |
- | **Important** : Notez que la limite définie par **--memory** est une taille absolue tandis que la limite définie par **--cpu-shares** est relative. | + | |
- | </ | + | |
- | + | ||
- | ----- | + | |
- | < | + | |
- | <div align=" | + | |
- | Copyright © 2021 Hugh NORRIS | + | |
- | </ | + | |
- | </ | + |