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 [2020/12/06 14:08] – 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:// | + | |
- | * Où voir le lien **[[https:// | + | |
- | * Où 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** et allez directement au LAB #3. | + | |
- | + | ||
- | ==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 517: | 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 555: | 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 607: | 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 630: | 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 643: | 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 690: | 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 705: | 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 749: | 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 755: | 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 789: | Ligne 758: | ||
< | < | ||
+ | root@debian9: | ||
docker@manager1: | docker@manager1: | ||
Swarm initialized: | Swarm initialized: | ||
Ligne 798: | Ligne 768: | ||
To add a manager to this swarm, run ' | To add a manager to this swarm, run ' | ||
</ | </ | ||
+ | |||
+ | Notez que les ports suivants doivent être ouverts sur un nœud manager : 22/tcp, 2376/tcp, 2377/tcp, 7946/tcp, 7946/udp et 4789/udp. | ||
====3.3 - Le Statut Leader==== | ====3.3 - Le Statut Leader==== | ||
Ligne 848: | Ligne 820: | ||
This node joined a swarm as a worker. | This node joined a swarm as a worker. | ||
</ | </ | ||
+ | |||
+ | Notez que les ports suivants doivent être ouverts sur un nœud worker : 22/tcp, 2376/tcp, 7946/tcp, 7946/udp et 4789/udp. | ||
L' | L' | ||
Ligne 1505: | 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 | + | |
- | </ | + | |
- | </ | + |