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/03/03 12:52] – 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/ | ||
- | docker run -d --name=worker --link db:db ---link redis:redis dockersamples/ | + | docker run -d --name=worker --link db:db --link redis:redis dockersamples/ |
</ | </ | ||
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' | ||
- | ----- | ||
- | =====ChangeLog===== | + | =====LAB #3 - Superviser les Conteneurs===== |
- | ====2020.01==== | + | ====3.1 - Les Journaux==== |
- | Première version en 2020. | + | Consultez les logs d'un conteneur : |
- | ====2020.02==== | + | < |
+ | 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 | ||
+ | </ | ||
- | * **Added** | + | ====3.2 |
+ | |||
+ | Consultez les processus d'un conteneur : | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | UID | ||
+ | root 31073 | ||
+ | </ | ||
+ | |||
+ | ====3.3 | ||
+ | |||
+ | Pour voir l' | ||
+ | |||
+ | < | ||
+ | root@debian9: | ||
+ | CONTAINER | ||
+ | centos3 | ||
+ | </ | ||
----- | ----- | ||
- | < | + | |
- | <div align=" | + | Copyright © 2022 Hugh Norris. |
- | Copyright © 2020 Hugh NORRIS | + | |
- | </ | + | |
- | </ | + |