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 [2020/11/17 13:12] – admin | elearning:workbooks:docker1:drf03 [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~~ | ||
- | ======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===== | ||
* **DOF104 - Gestion des Volumes, du Réseau et des Ressources** | * **DOF104 - Gestion des Volumes, du Réseau et des Ressources** | ||
+ | * Contenu du Module | ||
* LAB #1 - Gestion des Volumes | * LAB #1 - Gestion des Volumes | ||
* 1.1 - Gestion Automatique par Docker | * 1.1 - Gestion Automatique par Docker | ||
Ligne 25: | 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 301: | 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 695: | 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 718: | 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 734: | Ligne 898: | ||
[root@debian9 /]# exit | [root@debian9 /]# exit | ||
</ | </ | ||
+ | |||
+ | Le but de ce type de réseau est de permettre l' | ||
+ | |||
+ | Pour cette raison, dans le cas de l' | ||
+ | |||
+ | <WRAP center round important 50%> | ||
+ | **Important** : Notez que le réseau de type **host** ne fonctionne que sous Linux. Il est donc incompatible avec Docker Desktop pour Mac, Docker Desktop pour Windows et Docker EE pour Windows Server. | ||
+ | </ | ||
===None=== | ===None=== | ||
Ligne 880: | Ligne 1052: | ||
< | < | ||
- | root@debian9: | + | root@debian9: |
Unable to find image ' | Unable to find image ' | ||
latest: Pulling from library/ | latest: Pulling from library/ | ||
Ligne 913: | Ligne 1085: | ||
root@debian9: | root@debian9: | ||
CONTAINER ID IMAGE | CONTAINER ID IMAGE | ||
- | 9eb2f7fbfbd2 | + | 9eb2f7fbfbd2 |
67831dacf002 | 67831dacf002 | ||
</ | </ | ||
Ligne 920: | Ligne 1092: | ||
< | < | ||
- | root@debian9: | + | root@debian9: |
| | ||
| | ||
Ligne 966: | Ligne 1138: | ||
< | < | ||
docker run -d --name=redis redis | docker run -d --name=redis redis | ||
- | docker run -d --name=db postgres: | + | docker run -d --name=db |
docker run -d --name=vote -p 5000:80 --link redis:redis dockersamples/ | docker run -d --name=vote -p 5000:80 --link redis:redis dockersamples/ | ||
docker run -d --name=result -p 5001:80 --link db:db dockersamples/ | docker run -d --name=result -p 5001:80 --link db:db dockersamples/ | ||
Ligne 1019: | 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 © 2020 Hugh NORRIS | + | |
- | </ | + | |
- | </ | + |