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/05/12 14:49] – admin | elearning:workbooks:docker1:drf03 [2021/12/29 10:32] (Version actuelle) – admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ~~PDF: | ~~PDF: | ||
| - | Version : **2020.02** - Consulter le Change Log en fin de module. | + | Version : **2022.01** |
| Dernière mise-à-jour : ~~LASTMOD~~ | Dernière mise-à-jour : ~~LASTMOD~~ | ||
| - | ======DOF104 - Docker par la Pratique====== | + | ======DOF104 - Gestion des Volumes, du Réseau et de la Supervision des Conteneurs====== |
| - | Cette unité contient trois LABs : | + | =====Contenu du Module===== |
| - | * LAB #8 - Lancer Nagios dans un container, | + | |
| - | * LAB #9 - Lancer Wordpress dans un container, | + | * Contenu du Module |
| - | * LAB #10 - Gestion d'une Architecture de Microservices. | + | |
| + | * 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 dans un container | ||
| + | * 2.3 - Gestion d'une Architecture de Microservices | ||
| + | * LAB #3 - Superviser les Conteneurs | ||
| + | * 3.1 - Les Journaux | ||
| + | * 3.2 - Les Processus | ||
| + | * 3.3 - L' | ||
| - | =====LAB #8 - Lancer Nagios dans un container===== | + | =====LAB #1 - Gestion des Volumes===== |
| - | Créez le répertoire **/ | + | Lancez un conteneur à partir de la dernière image : |
| < | < | ||
| - | root@debian9: | + | root@debian9: |
| - | root@debian9: | + | e91a055283f4d67cbd91d11bb3faa6f67925893cb18f9cc25023e72e0f7ed85a |
| - | root@debian9: | + | |
| </ | </ | ||
| - | Créez | + | ====1.1 - Gestion Automatique de Volumes par Docker==== |
| + | |||
| + | Vérifiez que le processus est bien démarré dans le conteneur | ||
| < | < | ||
| - | root@debian9: | + | root@debian9: |
| - | root@debian9: | + | CONTAINER ID IMAGE |
| - | FROM ubuntu: | + | b9773e4aa06d |
| - | RUN apt-get update && \ | + | |
| - | apt-get -y install wget && \ | + | |
| - | wget https:// | + | |
| - | sh install.sh | + | |
| - | EXPOSE 80 | + | |
| - | ADD entrypoint.sh / | + | |
| - | CMD [" | + | |
| </ | </ | ||
| - | Créez | + | Identifiez |
| < | < | ||
| - | root@debian9: | + | root@debian9: |
| - | root@debian9:~/nagios# cat entrypoint.sh | + | ... |
| - | #!/bin/sh | + | " |
| - | # capture stop signals from Docker | + | { |
| - | trap stop_all 1 2 3 4 5 6 15 | + | " |
| - | stop_all() | + | " |
| - | | + | " |
| - | /etc/init.d/nagios stop | + | " |
| - | | + | " |
| - | } | + | " |
| - | start_all() { | + | " |
| - | | + | " |
| - | | + | }, |
| - | | + | |
| - | } | + | "Type": " |
| - | # start services and wait indefinitely | + | " |
| - | start_all | + | " |
| - | sleep 10000d | + | " |
| + | " | ||
| + | " | ||
| + | "RW": true, | ||
| + | " | ||
| + | } | ||
| + | ... | ||
| + | | ||
| + | " | ||
| + | "/data/ | ||
| + | }, | ||
| + | ... | ||
| </ | </ | ||
| - | Créez maintenant l' | + | En regardant le contenu du répertoire **/ |
| < | < | ||
| - | root@debian9: | + | root@debian9: |
| + | journal | ||
| </ | </ | ||
| - | Une fois l' | + | Arrêtez et supprimez le conteneur |
| < | < | ||
| - | root@debian9: | + | root@debian9: |
| + | mongo2 | ||
| + | root@debian9: | ||
| + | CONTAINER ID IMAGE | ||
| + | ea239635e141 | ||
| + | 21b0490a93dd | ||
| + | b9773e4aa06d | ||
| + | bdb4bc0f81de | ||
| + | f5b45072b831 | ||
| + | 9731a48f126a | ||
| + | eacd70596e23 | ||
| + | cffb4456e9c4 | ||
| + | root@debian9:~# docker rm mongo2 | ||
| + | mongo2 | ||
| + | root@debian9: | ||
| + | CONTAINER ID IMAGE | ||
| + | ea239635e141 | ||
| + | 21b0490a93dd | ||
| + | bdb4bc0f81de | ||
| + | f5b45072b831 | ||
| + | 9731a48f126a | ||
| + | eacd70596e23 | ||
| + | cffb4456e9c4 | ||
| </ | </ | ||
| - | Vérifiez que votre conteneur | + | Re-créez maintenant un conteneur |
| < | < | ||
| - | root@debian9: | + | root@debian9: |
| - | CONTAINER ID IMAGE | + | a8382642c4e849337e12a60419b10f63ea21251dfcc2c6050284ca3eed7fa13d |
| - | 23d6feb6e799 | + | root@debian9: |
| + | CONTAINER ID IMAGE COMMAND | ||
| + | a8382642c4e8 | ||
| + | ea239635e141 | ||
| + | 21b0490a93dd | ||
| + | bdb4bc0f81de | ||
| + | f5b45072b831 | ||
| + | 9731a48f126a | ||
| + | eacd70596e23 | ||
| + | cffb4456e9c4 | ||
| + | </ | ||
| + | |||
| + | Utilisez de nouveau la commande **docker inspect** pour identifier le point de montage du répertoire **/ | ||
| + | |||
| + | <code> | ||
| + | root@debian9: | ||
| + | ... | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| ... | ... | ||
| </ | </ | ||
| - | Ouvrez une session en mode graphique dans la machine virtuelle Debian 8 et lancez | + | <WRAP center round important> |
| + | **Important** : Notez que le répertoire des données du précédent conteneur, **/ | ||
| + | </ | ||
| - | http://localhost:8080/nagios | + | Les conteneurs n' |
| - | Vous devez obtenir | + | < |
| + | root@debian9: | ||
| + | total 52 | ||
| + | drwxr-xr-x 3 root root 4096 Sep 7 09:43 3bf724ceb38ce0792469d7e403f05b6794f27e0aa72bda51a8ab75b2df5ae87c | ||
| + | drwxr-xr-x 3 root root 4096 Sep 6 16:07 46d11d005d05757609ff76159ce0992d210089c5247fa54b024706a20b0de501 | ||
| + | drwxr-xr-x 3 root root 4096 Sep 7 09:43 76dcc0ccbe6604278cf8e8da0398a807f5d0719087f17c227c8504be24456d43 | ||
| + | drwxr-xr-x 3 root root 4096 Sep 7 02:33 9c84c2d1a0db811a3c13dce354ba21169f3073513c8d025dd96c5f902364d44a | ||
| + | drwxr-xr-x 3 root root 4096 Sep 7 02:33 a6177cf4b46089356280f084dd2e272f673aa4a81accb53f031267fafcee6050 | ||
| + | drwxr-xr-x 3 root root 4096 Sep 6 16:07 cc38fa97138adc55976aa16993d8920c5f7da922ad1b2a07936d30cc82d59f38 | ||
| + | -rw------- 1 root root 32768 Sep 7 09:43 metadata.db | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important> | ||
| + | **Important** : Notez que non-seulement ceci représente une source de perte d' | ||
| + | </ | ||
| + | |||
| + | ====1.2 - Gestion Manuelle d'un Volume==== | ||
| + | |||
| + | Arrêtez et supprimez le conteneur **mongo2** puis re-créez un conteneur avec un volume spécifique pour contenir les données placées dans **/ | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | mongo2 | ||
| + | root@debian9: | ||
| + | mongo2 | ||
| + | root@debian9: | ||
| + | 3cf093d72b9e3739f2cb288e571244e494b7518292c31994ee012e3620bb0e98 | ||
| + | root@debian9: | ||
| + | CONTAINER ID IMAGE | ||
| + | 3cf093d72b9e | ||
| + | ea239635e141 | ||
| + | 21b0490a93dd | ||
| + | bdb4bc0f81de | ||
| + | f5b45072b831 | ||
| + | 9731a48f126a | ||
| + | eacd70596e23 | ||
| + | cffb4456e9c4 | ||
| + | root@debian9: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | 2017-09-07T08: | ||
| + | </ | ||
| + | |||
| + | Notez que cette fois-ci, docker a créé un répertoire **persistent_data** dans le répertoire **/ | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | total 68 | ||
| + | drwxr-xr-x 3 root root 4096 Sep 7 09:43 3bf724ceb38ce0792469d7e403f05b6794f27e0aa72bda51a8ab75b2df5ae87c | ||
| + | drwxr-xr-x 3 root root 4096 Sep 6 16:07 46d11d005d05757609ff76159ce0992d210089c5247fa54b024706a20b0de501 | ||
| + | drwxr-xr-x 3 root root 4096 Sep 7 09:46 511e23f818d5cf60f4333a3fe8fd2e4333c900dec6eee97f70448bfb0091184d | ||
| + | drwxr-xr-x 3 root root 4096 Sep 7 09:53 5ca72be4140ecf1271efe7342cf7cd58ce66fc3673d12c04b8503603b8cee66c | ||
| + | drwxr-xr-x 3 root root 4096 Sep 7 09:43 76dcc0ccbe6604278cf8e8da0398a807f5d0719087f17c227c8504be24456d43 | ||
| + | drwxr-xr-x 3 root root 4096 Sep 7 02:33 9c84c2d1a0db811a3c13dce354ba21169f3073513c8d025dd96c5f902364d44a | ||
| + | drwxr-xr-x 3 root root 4096 Sep 7 02:33 a6177cf4b46089356280f084dd2e272f673aa4a81accb53f031267fafcee6050 | ||
| + | drwxr-xr-x 3 root root 4096 Sep 6 16:07 cc38fa97138adc55976aa16993d8920c5f7da922ad1b2a07936d30cc82d59f38 | ||
| + | -rw------- 1 root root 65536 Sep 7 09:53 metadata.db | ||
| + | drwxr-xr-x 3 root root 4096 Sep 7 09:46 persistent_data | ||
| + | </ | ||
| + | |||
| + | Arrêtez et supprimez le conteneur **mongo2** puis re-créez un conteneur en utilisant le même volume spécifique pour contenir les données placées dans **/ | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | mongo2 | ||
| + | root@debian9: | ||
| + | mongo2 | ||
| + | root@debian9: | ||
| + | ad672c3038245c25a36162d05820c21f7250557ac342582d0908d3ca33799e37 | ||
| + | root@debian9: | ||
| + | CONTAINER ID IMAGE | ||
| + | ad672c303824 | ||
| + | ea239635e141 | ||
| + | 21b0490a93dd | ||
| + | bdb4bc0f81de | ||
| + | f5b45072b831 | ||
| + | 9731a48f126a | ||
| + | eacd70596e23 | ||
| + | cffb4456e9c4 | ||
| + | </ | ||
| + | |||
| + | Encore une fois, cherchez le point de montage de **/ | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | ... | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important> | ||
| + | **Important** : Notez ici que l' | ||
| + | </ | ||
| + | |||
| + | Pour créer un volume à utiliser avec un conteneur utilisez la commande docker volume **create** : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | myvolume | ||
| + | </ | ||
| + | |||
| + | Pour lister les volumes, utilisez la commande docker volume **ls** : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | DRIVER | ||
| + | local | ||
| + | </ | ||
| + | |||
| + | 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 **/ | ||
| + | |||
| + | < | ||
| + | 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. | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | 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===== | ||
| + | |||
| + | ====2.1 - L' | ||
| + | |||
| + | Docker fournit trois réseaux par défaut : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | NETWORK ID NAME DRIVER | ||
| + | 495b3db75b0d | ||
| + | e1ed4de2f947 | ||
| + | 6bda460c97c6 | ||
| + | </ | ||
| + | |||
| + | ===Bridge=== | ||
| + | |||
| + | Ce type de réseau est limité aux conteneurs d'un hôte unique exécutant Docker. Les conteneurs ne peuvent communiquer qu' | ||
| + | |||
| + | Par défaut Docker fonctionne en mode **Pont** ou (// | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | 3: docker0: < | ||
| + | link/ether 02: | ||
| + | inet 172.17.0.1/ | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Démarrez un conteneur dénommé **resotest** à partir d'une image de CentOS : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | 2169360fcbfdbd6e68ea969a95edeb6fc42603c23ee42f03ceec286276519855 | ||
| + | </ | ||
| + | |||
| + | Lancez ensuite la commande **docker network inspect bridge** à partir de la machine virtuelle hôte de Debian_9 : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | [ | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important> | ||
| + | **Important** : Notez ici que les conteneurs **mongo2** et **resotest** ne disposent pas de la même adresse que l' | ||
| + | </ | ||
| + | |||
| + | Vous pouvez déconnecter un conteneur du réseau en utilisant la commande suivante : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | root@debian9: | ||
| + | [ | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | </ | ||
| + | |||
| + | Créez maintenant votre propre réseau ponté appelé **my-bridged-network** : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | ceb7ba7493933c55d181bc92b1f799ca07bfe84b168d52a6ac648c1a906093f3 | ||
| + | root@debian9: | ||
| + | NETWORK ID NAME | ||
| + | 495b3db75b0d | ||
| + | e1ed4de2f947 | ||
| + | ceb7ba749393 | ||
| + | 6bda460c97c6 | ||
| + | </ | ||
| + | |||
| + | Bien évidement, ce réseau est actuellement vide : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | [ | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | </ | ||
| + | |||
| + | Lancez maintenant deux conteneurs et consultez les informations concernant le réseau : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | 9f36a628c72b383edfd4dc13ee4e4b2eaf5be0078d780f0334fcb8be0d977d0e | ||
| + | |||
| + | root@debian9: | ||
| + | aaed3bc8e404ee1bccd6c87b39de32332940b5391514691fc70188edb17c1d7c | ||
| + | |||
| + | root@debian9: | ||
| + | {" | ||
| + | |||
| + | root@debian9: | ||
| + | {" | ||
| + | |||
| + | root@debian9: | ||
| + | 172.17.0.3 | ||
| + | |||
| + | root@debian9: | ||
| + | 172.17.0.4 | ||
| + | </ | ||
| + | |||
| + | Mettez le conteneur **centos1** dans le réseau **my-bridged-network** : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | |||
| + | root@debian9: | ||
| + | [ | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | |||
| + | root@debian9: | ||
| + | 172.17.0.3172.25.0.2 | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important> | ||
| + | **Important** : Notez que le conteneur **centos1** se trouve dans deux réseaux. | ||
| + | </ | ||
| + | |||
| + | Faites la même chose pour le conteneur **centos2** : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | |||
| + | root@debian9: | ||
| + | [ | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | |||
| + | root@debian9: | ||
| + | 172.17.0.4172.25.0.3 | ||
| + | </ | ||
| + | |||
| + | Connectez-vous | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | </ | ||
| + | |||
| + | Vérifiez que la connectivité fonctionne : | ||
| + | |||
| + | < | ||
| + | [root@9f36a628c72b /]# ping 172.25.0.3 | ||
| + | PING 172.25.0.3 (172.25.0.3) 56(84) bytes of data. | ||
| + | 64 bytes from 172.25.0.3: icmp_seq=1 ttl=64 time=0.100 ms | ||
| + | 64 bytes from 172.25.0.3: icmp_seq=2 ttl=64 time=0.050 ms | ||
| + | 64 bytes from 172.25.0.3: icmp_seq=3 ttl=64 time=0.050 ms | ||
| + | ^C | ||
| + | --- 172.25.0.3 ping statistics --- | ||
| + | 3 packets transmitted, | ||
| + | rtt min/ | ||
| + | </ | ||
| + | |||
| + | Les options possibles au niveau de la gestion du réseau sont vaste. Voici deux exemples supplémentaires. | ||
| + | |||
| + | Il est possible d' | ||
| + | |||
| + | < | ||
| + | [root@9f36a628c72b /]# exit | ||
| + | exit | ||
| + | root@debian9: | ||
| + | mongo2 | ||
| + | root@debian9: | ||
| + | mongo2 | ||
| + | root@debian9: | ||
| + | root@735599480b45:/# | ||
| + | search home | ||
| + | nameserver 8.8.8.8 | ||
| + | root@735599480b45:/# | ||
| + | </ | ||
| + | |||
| + | ou de passer une entrée pour le fichier **/ | ||
| + | |||
| + | < | ||
| + | root@735599480b45:/# | ||
| + | exit | ||
| + | root@debian9: | ||
| + | mongo2 | ||
| + | root@debian9: | ||
| + | mongo2 | ||
| + | root@debian9: | ||
| + | root@718e7eab814f:/# | ||
| + | 127.0.0.1 localhost | ||
| + | :: | ||
| + | fe00:: | ||
| + | ff00:: | ||
| + | ff02:: | ||
| + | ff02:: | ||
| + | 127.0.0.1 mickeymouse | ||
| + | 172.17.0.2 718e7eab814f | ||
| + | </ | ||
| + | |||
| + | ===Host=== | ||
| + | |||
| + | 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' | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | 2: ens18: < | ||
| + | link/ether 08: | ||
| + | inet 10.0.2.60/ | ||
| + | | ||
| + | inet6 fe80:: | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Démarrez un conteneur à partir de l' | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | [root@debian9 /]# ip a | ||
| + | 1: lo: < | ||
| + | link/ | ||
| + | inet 127.0.0.1/8 scope host lo | ||
| + | | ||
| + | inet6 ::1/128 scope host | ||
| + | | ||
| + | 2: ens18: < | ||
| + | link/ether 08: | ||
| + | inet 10.0.2.60/ | ||
| + | | ||
| + | inet6 fe80:: | ||
| + | | ||
| + | 3: docker0: < | ||
| + | link/ether 02: | ||
| + | inet 172.17.0.1/ | ||
| + | | ||
| + | inet6 fe80:: | ||
| + | | ||
| + | [root@debian9 /]# hostname | ||
| + | debian9 | ||
| + | [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. | ||
| + | </WRAP> | ||
| + | |||
| + | ===None=== | ||
| + | |||
| + | Ce type de réseau est utilisé principalement dans le cas de l' | ||
| + | |||
| + | Il est donc possible de lancer un conteneur totalement étanche grâce au réseau **none** : | ||
| + | |||
| + | < | ||
| + | root@718e7eab814f:/# | ||
| + | exit | ||
| + | root@debian9: | ||
| + | mongo2 | ||
| + | root@debian9: | ||
| + | mongo2 | ||
| + | root@debian9: | ||
| + | root@332aa9930f30:/# | ||
| + | </ | ||
| + | |||
| + | ===Liens=== | ||
| + | |||
| + | Le mécanisme des liens entre conteneurs est très puissant et permet d' | ||
| + | |||
| + | < | ||
| + | root@332aa9930f30:/# | ||
| + | exit | ||
| + | |||
| + | root@debian9: | ||
| + | 6a315259b2946c3bf2bb69f608cbe910d87edaadedb4f805e7a4dbf6af1eb916 | ||
| + | |||
| + | root@debian9: | ||
| + | CONTAINER ID IMAGE | ||
| + | 6a315259b294 | ||
| + | 332aa9930f30 | ||
| + | aaed3bc8e404 | ||
| + | 9f36a628c72b | ||
| + | 2169360fcbfd | ||
| + | ea239635e141 | ||
| + | 21b0490a93dd | ||
| + | bdb4bc0f81de | ||
| + | f5b45072b831 | ||
| + | 9731a48f126a | ||
| + | eacd70596e23 | ||
| + | cffb4456e9c4 | ||
| + | |||
| + | root@debian9: | ||
| + | |||
| + | [root@6a315259b294 /]# ping centos2 | ||
| + | PING alias (172.17.0.4) 56(84) bytes of data. | ||
| + | 64 bytes from alias (172.17.0.4): | ||
| + | 64 bytes from alias (172.17.0.4): | ||
| + | 64 bytes from alias (172.17.0.4): | ||
| + | 64 bytes from alias (172.17.0.4): | ||
| + | ^C | ||
| + | --- alias ping statistics --- | ||
| + | 4 packets transmitted, | ||
| + | rtt min/ | ||
| + | |||
| + | [root@6a315259b294 /]# cat / | ||
| + | 127.0.0.1 localhost | ||
| + | :: | ||
| + | fe00:: | ||
| + | ff00:: | ||
| + | ff02:: | ||
| + | ff02:: | ||
| + | 172.17.0.4 alias aaed3bc8e404 centos2 | ||
| + | 172.17.0.2 6a315259b294 | ||
| + | |||
| + | [root@6a315259b294 /]# exit | ||
| + | exit | ||
| + | |||
| + | root@debian9: | ||
| + | 172.17.0.2 | ||
| + | </ | ||
| + | |||
| + | Notez cependant qu le lien est unidirectionnel : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | |||
| + | [root@aaed3bc8e404 /]# ping centos3 | ||
| + | ping: centos3: Name or service not known | ||
| + | |||
| + | [root@aaed3bc8e404 /]# ping 172.17.0.2 | ||
| + | PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data. | ||
| + | 64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.054 ms | ||
| + | 64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.035 ms | ||
| + | 64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.051 ms | ||
| + | 64 bytes from 172.17.0.2: icmp_seq=4 ttl=64 time=0.071 ms | ||
| + | ^C | ||
| + | --- 172.17.0.2 ping statistics --- | ||
| + | 4 packets transmitted, | ||
| + | rtt min/ | ||
| + | |||
| + | [root@aaed3bc8e404 /]# | ||
| + | </ | ||
| + | |||
| + | Dans le cas ci-dessus, **centos2** peut atteindre **centos3** en utilisant l' | ||
| + | |||
| + | < | ||
| + | [root@aaed3bc8e404 /]# exit | ||
| + | exit | ||
| + | root@debian9: | ||
| + | 172.17.0.4172.25.0.3 | ||
| + | </ | ||
| - | =====LAB #9 - Lancer Wordpress dans un container===== | + | ====2.2 - Lancer Wordpress dans un container==== |
| Créez le répertoire ~/wordpress et placez-vous dedans : | Créez le répertoire ~/wordpress et placez-vous dedans : | ||
| Ligne 129: | Ligne 1052: | ||
| < | < | ||
| - | root@debian9: | + | root@debian9: |
| Unable to find image ' | Unable to find image ' | ||
| latest: Pulling from library/ | latest: Pulling from library/ | ||
| Ligne 162: | Ligne 1085: | ||
| root@debian9: | root@debian9: | ||
| CONTAINER ID IMAGE | CONTAINER ID IMAGE | ||
| - | 9eb2f7fbfbd2 | + | 9eb2f7fbfbd2 |
| 67831dacf002 | 67831dacf002 | ||
| </ | </ | ||
| Ligne 169: | Ligne 1092: | ||
| < | < | ||
| - | root@debian9: | + | root@debian9: |
| | | ||
| | | ||
| Ligne 195: | Ligne 1118: | ||
| </ | </ | ||
| - | =====LAB #10 - Gestion d'une Architecture de Microservices===== | + | ====2.3 - Gestion d'une Architecture de Microservices==== |
| Vous allez mettre en place une application simple sous forme de microservices, | Vous allez mettre en place une application simple sous forme de microservices, | ||
| Ligne 215: | 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 223: | Ligne 1146: | ||
| Cette solution utilise un réseau de type Bridge. Ce type de réseau est limité aux conteneurs d'un hôte unique exécutant Docker. Les conteneurs ne peuvent communiquer qu' | Cette solution utilise un réseau de type Bridge. Ce type de réseau est limité aux conteneurs d'un hôte unique exécutant Docker. Les conteneurs ne peuvent communiquer qu' | ||
| - | =====Arrêter la Machine Virtuelle===== | ||
| - | ====Formations en FFP==== | + | =====LAB #3 - Superviser les Conteneurs===== |
| - | Utilisez l' | + | ====3.1 - Les Journaux==== |
| - | Restaurez ensuite la machine virtuelle **Debian_9** vers son état d'origine en revenant à **snapshot1**. | + | Consultez les logs d'un conteneur : |
| - | ====Formations en FAD==== | + | < |
| + | root@debian9: | ||
| + | root@332aa9930f30:/# | ||
| + | bash: ip: command not found | ||
| + | root@332aa9930f30:/# | ||
| + | bash: ip: command not found | ||
| + | root@332aa9930f30:/# | ||
| + | bash: ifconfig: command not found | ||
| + | root@332aa9930f30:/# | ||
| + | bin boot core data dev docker-entrypoint-initdb.d entrypoint.sh | ||
| + | root@332aa9930f30:/# | ||
| + | root@332aa9930f30:/# | ||
| + | root@332aa9930f30:/# | ||
| + | bash: docker: command not found | ||
| + | root@332aa9930f30:/# | ||
| + | exit | ||
| + | </ | ||
| - | Utilisez la commande suivante pour arrêter la machine virtuelle **Debian_9** | + | ====3.2 - Les Processus==== |
| + | |||
| + | Consultez les processus d'un conteneur | ||
| < | < | ||
| - | desktop@server16:~$ VBoxManage controlvm Debian_9 poweroff | + | root@debian9:~# docker top centos3 |
| - | 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% | + | UID |
| + | root 31073 | ||
| </ | </ | ||
| - | Restaurez | + | ====3.3 - L' |
| + | |||
| + | Pour voir l'activité | ||
| < | < | ||
| - | desktop@server16:~$ VBoxManage snapshot Debian_9 restorecurrent | + | root@debian9:~# docker stats centos3 |
| - | Restoring snapshot ' | + | CONTAINER |
| - | 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% | + | centos3 |
| </ | </ | ||
| ----- | ----- | ||
| - | =====ChangeLog===== | + | Copyright © 2022 Hugh Norris. |
| - | + | ||
| - | ====2020.01==== | + | |
| - | + | ||
| - | Première version en 2020. | + | |
| - | + | ||
| - | ====2020.02==== | + | |
| - | + | ||
| - | * **Added** - LAB #10 - Gestion d'une Architecture de Microservices | + | |
| - | + | ||
| - | ----- | + | |
| - | < | + | |
| - | <div align=" | + | |
| - | Copyright © 2020 Hugh NORRIS | + | |
| - | </ | + | |
| - | </ | + | |