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:docker2:drf01 [2021/02/21 08:58] – admin | elearning:workbooks:docker2:drf01 [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 16: | Ligne 16: | ||
| * LAB #2 - Docker Machine | * LAB #2 - Docker Machine | ||
| * 2.1 - Présentation | * 2.1 - Présentation | ||
| - | * 2.2 - Préparation | + | * 2.2 - Création de Machines Virtuelles Docker |
| - | * Docker-CE | + | * 2.3 - Lister les VM Docker |
| - | * Mac | + | * 2.4 - Obtenir l' |
| - | * Linux | + | * 2.5 - Se connecter à une VM Docker |
| - | * Windows | + | |
| - | * VirtualBox | + | |
| - | * 2.3 - Installation | + | |
| - | * Mac | + | |
| - | * Linux | + | |
| - | * Windows | + | |
| - | * 2.4 - Création de Machines Virtuelles Docker | + | |
| - | * 2.5 - Lister les VM Docker | + | |
| - | * 2.6 - Obtenir l' | + | |
| - | * 2.7 - Se connecter à une VM Docker | + | |
| * LAB #3 - Docker Swarm | * LAB #3 - Docker Swarm | ||
| * 3.1 - Présentation | * 3.1 - Présentation | ||
| Ligne 41: | Ligne 31: | ||
| * 3.9 - Haute Disponibilité | * 3.9 - Haute Disponibilité | ||
| * 3.10 - Supprimer un Service | * 3.10 - Supprimer un Service | ||
| + | * 3.11 - Sauvegarder Docker Swarm | ||
| + | * 3.12 - Restaurer Docker Swarm | ||
| =====LAB #1 - Docker Compose===== | =====LAB #1 - Docker Compose===== | ||
| Ligne 97: | Ligne 89: | ||
| ====1.2 - Utiliser docker-compose==== | ====1.2 - Utiliser docker-compose==== | ||
| + | |||
| + | ===Une Application Simple=== | ||
| Dans ce LAB vous allez créer une application simple ayant deux environnements différents : | Dans ce LAB vous allez créer une application simple ayant deux environnements différents : | ||
| Ligne 373: | Ligne 367: | ||
| </ | </ | ||
| - | Avant de poursuivre, utilisez la commande suivante pour arrêter la machine virtuelle | + | ===Installer Wordpress avec Docker Compose=== |
| + | |||
| + | Créez maintenant le répertoire | ||
| < | < | ||
| - | desktop@serverXX:~$ VBoxManage controlvm Debian_9 poweroff | + | root@debian9:~/ |
| - | 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% | + | root@debian9: |
| </ | </ | ||
| - | Ensuite restaurez l' | + | Placez-vous dans le répertoire et créer le fichier |
| < | < | ||
| - | desktop@serverXX:~$ VBoxManage snapshot Debian_9 restorecurrent | + | root@debian9:~# cd wordpress1 |
| - | Restoring snapshot ' | + | root@debian9: |
| - | 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% | + | root@debian9: |
| + | version: "3.3" | ||
| + | |||
| + | services: | ||
| + | db: | ||
| + | image: mysql:5.7 | ||
| + | volumes: | ||
| + | - db_data:/ | ||
| + | restart: always | ||
| + | environment: | ||
| + | MYSQL_ROOT_PASSWORD: | ||
| + | MYSQL_DATABASE: | ||
| + | MYSQL_USER: wordpress | ||
| + | MYSQL_PASSWORD: | ||
| + | |||
| + | wordpress: | ||
| + | depends_on: | ||
| + | - db | ||
| + | image: wordpress: | ||
| + | ports: | ||
| + | - "8000:80" | ||
| + | restart: always | ||
| + | environment: | ||
| + | WORDPRESS_DB_HOST: | ||
| + | WORDPRESS_DB_USER: | ||
| + | WORDPRESS_DB_PASSWORD: | ||
| + | WORDPRESS_DB_NAME: | ||
| + | volumes: | ||
| + | db_data: {} | ||
| </ | </ | ||
| - | Supprimez les règles de redirections de ports : | + | Exécutez la commande docker-compose |
| < | < | ||
| - | desktop@serverXX:~$ VBoxManage natnetwork modify | + | root@debian9:~/ |
| - | desktop@serverXX: | + | |
| </ | </ | ||
| - | Arrêtez et supprimez la VM **Registry** | + | Vérifiez que le Wordpress fonctionne |
| < | < | ||
| - | desktop@serverXX:~$ VBoxManage controlvm Registry poweroff | + | root@debian9:~/ |
| - | desktop@serverXX:~$ VBoxManage unregistervm | + | WordPress |
| + | | ||
| + | |||
| + | | ||
| + | |||
| + | root@debian9:~# docker ps -a | ||
| + | CONTAINER ID IMAGE | ||
| + | 29afa2a7fdb5 | ||
| + | ... | ||
| + | |||
| + | root@debian9: | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | |||
| + | root@debian9: | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| </ | </ | ||
| Ligne 410: | Ligne 452: | ||
| Le jeu de commandes de docker-machine permet de démarrer, surveiller, arrêter et re-démarrer un hôte géré, de mettre à jour le client/ | Le jeu de commandes de docker-machine permet de démarrer, surveiller, arrêter et re-démarrer un hôte géré, de mettre à jour le client/ | ||
| - | ====2.2 | + | Pour installer docker-machine sur votre VM **debian9**, utilisez |
| - | + | ||
| - | Exécutez la commande | + | |
| < | < | ||
| - | desktop@serverXX:~$ which docker | + | root@debian9:~# curl -L https:// |
| - | desktop@serverXX:~$ | + | |
| </ | </ | ||
| - | Si vous obtenez la sortie suivante, passez à la section **2.3 - Installation de docker-machine** : | + | ====2.2 - Création de Machines Virtuelles Docker===== |
| - | + | ||
| - | < | + | |
| - | desktop@serverXX: | + | |
| - | / | + | |
| - | </ | + | |
| - | + | ||
| - | ===Docker-CE=== | + | |
| - | + | ||
| - | Installer Docker-CE sur votre **serveur** : | + | |
| - | + | ||
| - | ==Mac== | + | |
| - | + | ||
| - | * Voir le lien **[[https:// | + | |
| - | + | ||
| - | ==Linux et FAD== | + | |
| - | + | ||
| - | * **Ubuntu** - voir le lien **[[https:// | + | |
| - | * Debian - voir le lien **[[https:// | + | |
| - | * CentOS - voir le lien **[[https:// | + | |
| - | * Fedora - voir le lien **[[https:// | + | |
| - | + | ||
| - | ==Windows 7, 8== | + | |
| - | + | ||
| - | * Téléchargez Docker Toolbox à partir de cette page **[[https:// | + | |
| - | * Fermez toutes les machines virtuelles ainsi que VirtualBox, | + | |
| - | * Installez **DockerToolBox.exe** (décochez VirtualBox dans la liste de produits à installer), | + | |
| - | * Exécutez Docker Toolbox et laissez l' | + | |
| - | * Ouvrez VirtualBox. Vous verrez une machine virtuelle Default, | + | |
| - | * Ouvrez **cmd**. | + | |
| - | + | ||
| - | ==Windows 10== | + | |
| - | + | ||
| - | * Voir le lien **[[https:// | + | |
| - | + | ||
| - | ====2.3 - Installation de docker-machine==== | + | |
| - | + | ||
| - | Exécutez la commande **which docker-machine** pour voir si le binaire docker-machine est installé sur le serveur. Si vous obtenez la sortie suivante, installez docker-machine : | + | |
| - | + | ||
| - | < | + | |
| - | desktop@serverXX: | + | |
| - | desktop@serverXX: | + | |
| - | </ | + | |
| - | + | ||
| - | Si vous obtenez la sortie suivante, passez à la section **2.4 - Création de Machines Virtuelles Docker** : | + | |
| - | + | ||
| - | < | + | |
| - | desktop@serverXX: | + | |
| - | / | + | |
| - | </ | + | |
| - | + | ||
| - | Pour installer docker-machine sur votre **serveur**, | + | |
| - | + | ||
| - | ===Mac=== | + | |
| - | + | ||
| - | < | + | |
| - | curl -L https:// | + | |
| - | </ | + | |
| - | + | ||
| - | ===Linux et FAD=== | + | |
| - | + | ||
| - | < | + | |
| - | curl -L https:// | + | |
| - | </ | + | |
| - | + | ||
| - | ===Windows=== | + | |
| - | + | ||
| - | Si vous utilisez **[[https:// | + | |
| - | + | ||
| - | < | + | |
| - | if [[ ! -d " | + | |
| - | </ | + | |
| - | + | ||
| - | Si vous n' | + | |
| - | + | ||
| - | Téléchargez la version adéquate pour l' | + | |
| - | + | ||
| - | ====2.4 | + | |
| La création d'une machine se fait simplement en utilisant la commande **docker-machine** avec la sous-commande **create**. Cette sous-commande prend l' | La création d'une machine se fait simplement en utilisant la commande **docker-machine** avec la sous-commande **create**. Cette sous-commande prend l' | ||
| Ligne 515: | Ligne 477: | ||
| | [[https:// | | [[https:// | ||
| - | Créez donc la machine virtuelle **manager1** | + | Commencez par installer Oracle VirtualBox: |
| < | < | ||
| - | desktop@serverXX:~$ sudo su - | + | root@debian9:~/wordpress# cd ~ |
| - | [sudo] password for desktop: | + | root@debian9: |
| - | root@serverXX:~# docker-machine create --driver virtualbox manager1 | + | </ |
| + | |||
| + | Créez maintenant la machine virtuelle **manager1** | ||
| + | |||
| + | < | ||
| + | root@debian9:~# docker-machine create --driver virtualbox manager1 | ||
| Creating CA: / | Creating CA: / | ||
| Creating client certificate: | Creating client certificate: | ||
| Ligne 553: | Ligne 520: | ||
| < | < | ||
| - | root@serverXX:~# docker-machine --help | + | root@debian9:~# docker-machine --help |
| Usage: docker-machine [OPTIONS] COMMAND [arg...] | Usage: docker-machine [OPTIONS] COMMAND [arg...] | ||
| Ligne 605: | Ligne 572: | ||
| < | < | ||
| - | root@serverXX:~# docker-machine create --driver virtualbox worker1 | + | root@debian9:~# docker-machine create --driver virtualbox worker1 |
| Running pre-create checks... | Running pre-create checks... | ||
| Creating machine... | Creating machine... | ||
| Ligne 628: | Ligne 595: | ||
| < | < | ||
| - | root@serverXX:~# docker-machine create --driver virtualbox worker2 | + | root@debian9:~# docker-machine create --driver virtualbox worker2 |
| ... | ... | ||
| - | root@serverXX:~# docker-machine create --driver virtualbox worker3 | + | root@debian9:~# docker-machine create --driver virtualbox worker3 |
| ... | ... | ||
| - | root@serverXX:~# docker-machine create --driver virtualbox worker4 | + | root@debian9:~# docker-machine create --driver virtualbox worker4 |
| ... | ... | ||
| - | root@serverXX:~# docker-machine create --driver virtualbox worker5 | + | root@debian9:~# docker-machine create --driver virtualbox worker5 |
| ... | ... | ||
| </ | </ | ||
| Ligne 641: | Ligne 608: | ||
| < | < | ||
| - | root@serverXX:~# docker-machine create --help | + | root@debian9:~# docker-machine create --help |
| Usage: docker-machine create [OPTIONS] [arg...] | Usage: docker-machine create [OPTIONS] [arg...] | ||
| Ligne 688: | Ligne 655: | ||
| </ | </ | ||
| - | ====2.5 - Lister les VM Docker==== | + | ====2.3 - Lister les VM Docker==== |
| Pour lister les VM Docker ainsi que leurs états, il convient d' | Pour lister les VM Docker ainsi que leurs états, il convient d' | ||
| < | < | ||
| - | root@serverXX:~# docker-machine ls | + | root@debian9:~# docker-machine ls |
| NAME | NAME | ||
| manager1 | manager1 | ||
| Ligne 703: | Ligne 670: | ||
| </ | </ | ||
| - | <WRAP center round important> | + | ====2.4 - Obtenir l' |
| - | **Important** - Si vous avez Windows 7 ou 8 et vous utilisez Docker Toolbox, les adresses IP des machines seront décalées de 1. Par exemple pour manager1, l' | + | |
| - | </ | + | |
| - | + | ||
| - | ====2.6 - Obtenir l' | + | |
| Une autre façon d' | Une autre façon d' | ||
| < | < | ||
| - | root@serverXX:~# docker-machine ip manager1 | + | root@debian9:~# docker-machine ip manager1 |
| 192.168.99.100 | 192.168.99.100 | ||
| - | root@serverXX:~# docker-machine ip worker1 | + | root@debian9:~# docker-machine ip worker1 |
| 192.168.99.101 | 192.168.99.101 | ||
| - | root@serverXX:~# docker-machine ip worker2 | + | root@debian9:~# docker-machine ip worker2 |
| 192.168.99.102 | 192.168.99.102 | ||
| - | root@serverXX:~# docker-machine ip worker3 | + | root@debian9:~# docker-machine ip worker3 |
| 192.168.99.103 | 192.168.99.103 | ||
| - | root@serverXX:~# docker-machine ip worker4 | + | root@debian9:~# docker-machine ip worker4 |
| 192.168.99.104 | 192.168.99.104 | ||
| - | root@serverXX:~# docker-machine ip worker5 | + | root@debian9:~# docker-machine ip worker5 |
| 192.168.99.105 | 192.168.99.105 | ||
| </ | </ | ||
| - | ====2.7 - Se connecter à une VM Docker==== | + | ====2.5 - Se connecter à une VM Docker==== |
| Pour se connecter à une VM Docker, il convient d' | Pour se connecter à une VM Docker, il convient d' | ||
| < | < | ||
| - | root@serverXX:~# docker-machine ssh manager1 | + | root@debian9:~# docker-machine ssh manager1 |
| ## . | ## . | ||
| ## ## ## == | ## ## ## == | ||
| Ligne 747: | Ligne 710: | ||
| Boot2Docker version 17.06.2-ce, build HEAD : ff16afa - Wed Sep 6 00:17:25 UTC 2017 | Boot2Docker version 17.06.2-ce, build HEAD : ff16afa - Wed Sep 6 00:17:25 UTC 2017 | ||
| Docker version 17.06.2-ce, build cec0b72 | Docker version 17.06.2-ce, build cec0b72 | ||
| - | docker@manager1: | + | docker@manager1: |
| </ | </ | ||
| Ligne 753: | Ligne 716: | ||
| **Important** - Notez que la distribution de la VM est **[[http:// | **Important** - Notez que la distribution de la VM est **[[http:// | ||
| </ | </ | ||
| + | |||
| + | Installez maintenant le paquet **mlocate** : | ||
| + | |||
| + | < | ||
| + | root@debian9: | ||
| + | ... | ||
| + | </ | ||
| Ayant été créées par root, les VM Docker ainsi que leurs fichiers associés sont stockés dans le répertoire **/ | Ayant été créées par root, les VM Docker ainsi que leurs fichiers associés sont stockés dans le répertoire **/ | ||
| < | < | ||
| - | root@serverXX:~# locate manager1 | + | root@debian9:~# updatedb |
| + | root@debian9:~# locate manager1 | ||
| / | / | ||
| / | / | ||
| Ligne 787: | Ligne 758: | ||
| < | < | ||
| + | root@debian9: | ||
| docker@manager1: | docker@manager1: | ||
| Swarm initialized: | Swarm initialized: | ||
| Ligne 1507: | Ligne 1479: | ||
| Status: Error: no such service: web, Code: 1 | Status: Error: no such service: web, Code: 1 | ||
| </ | </ | ||
| + | |||
| + | Sortez de manager1 et démarrez le serveur VNC dans la machine virtuelle **debian9** en tant que **trainee** : | ||
| + | |||
| + | < | ||
| + | docker@manager1:/ | ||
| + | root@debian9: | ||
| + | trainee@debian9: | ||
| + | |||
| + | New ' | ||
| + | |||
| + | Starting applications specified in / | ||
| + | Log file is / | ||
| + | </ | ||
| + | |||
| + | ====3.11 - Sauvegarder Docker Swarm==== | ||
| + | |||
| + | La configuration de Docker Swarm est contenue dans le répertoire **/ | ||
| + | |||
| + | * arrêt du service Docker sur le Manager à sauvegarder, | ||
| + | * sauvegarde du répertoire **/ | ||
| + | * redémarrage du service Docker sur le Manager concerné. | ||
| + | |||
| + | ====3.12 - Restaurer Docker Swarm==== | ||
| + | |||
| + | Le procédure de resturation est : | ||
| + | |||
| + | * arrêt du service Docker sur un nouveau Manager, | ||
| + | * suppression du contenu du répertoire **/ | ||
| + | * restauration du répertoire **/ | ||
| + | * exécution de la commande **docker swarm init --force-new-cluster** sur le nouveau Manager, | ||
| + | * ajout des Managers et Workers à Swarm. | ||
| ----- | ----- | ||
| - | < | + | |
| - | <div align=" | + | Copyright © 2022 Hugh Norris. |
| - | Copyright © 2020 Hugh NORRIS | + | |
| - | </ | + | |
| - | </ | + | |