Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
elearning:workbooks:docker2:drf01 [2021/03/22 13:36] adminelearning:workbooks:docker2:drf01 [2021/12/29 10:32] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version : **2021.01**+Version : **2022.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
Ligne 31: 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 87: 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 361: Ligne 365:
  
 root@debian9:~/MyApp/development# root@debian9:~/MyApp/development#
 +</code>
 +
 +===Installer Wordpress avec Docker Compose===
 +
 +Créez maintenant le répertoire **wordpress1** dans /root :
 +
 +<code>
 +root@debian9:~/MyApp/development# cd ~
 +root@debian9:~# mkdir wordpress1
 +</code>
 +
 +Placez-vous dans le répertoire et créer le fichier **docker-compose.yaml**
 +
 +<code>
 +root@debian9:~# cd wordpress1
 +root@debian9:~/wordpress1# vi docker-compose.yaml
 +root@debian9:~/wordpress1# cat docker-compose.yaml
 +version: "3.3"
 +    
 +services:
 +  db:
 +    image: mysql:5.7
 +    volumes:
 +      - db_data:/var/lib/mysql
 +    restart: always
 +    environment:
 +      MYSQL_ROOT_PASSWORD: fenestros
 +      MYSQL_DATABASE: wordpress
 +      MYSQL_USER: wordpress
 +      MYSQL_PASSWORD: wordpress
 +    
 +  wordpress:
 +    depends_on:
 +      - db
 +    image: wordpress:latest
 +    ports:
 +      - "8000:80"
 +    restart: always
 +    environment:
 +      WORDPRESS_DB_HOST: db:3306
 +      WORDPRESS_DB_USER: wordpress
 +      WORDPRESS_DB_PASSWORD: wordpress
 +      WORDPRESS_DB_NAME: wordpress
 +volumes:
 +  db_data: {}
 +</code>
 +
 +Exécutez la commande docker-compose :
 +
 +<code>
 +root@debian9:~/wordpress1# docker-compose up -d
 +</code>
 +
 +Vérifiez que le Wordpress fonctionne :
 +
 +<code>
 +root@debian9:~/wordpress1# lynx --dump http://10.0.2.60:8000
 +   WordPress
 +   Select a default language [English (United States)________]
 +
 +   Continue
 +   
 +root@debian9:~# docker ps -a
 +CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                      PORTS                  NAMES
 +29afa2a7fdb5        wordpress:latest      "docker-entrypoint.s…"   21 minutes ago      Up 20 minutes               0.0.0.0:8000->80/tcp   wordpress1_wordpress_1
 +...
 +
 +root@debian9:~/wordpress1# docker inspect wordpress1_wordpress_1 | grep IPAddress
 +            "SecondaryIPAddresses": null,
 +            "IPAddress": "172.17.0.7",
 +                    "IPAddress": "172.17.0.7",
 +                    
 +root@debian9:~/wordpress1# lynx --dump http://172.17.0.7
 +   WordPress
 +   Select a default language [English (United States)________]
 +
 +   Continue
 </code> </code>
  
Ligne 396: Ligne 477:
 | [[https://www.vmware.com/fr/products/vsphere.html|VMware vSphere]] | [[https://docs.docker.com/machine/drivers/vsphere/|vmwarevsphere]] | | [[https://www.vmware.com/fr/products/vsphere.html|VMware vSphere]] | [[https://docs.docker.com/machine/drivers/vsphere/|vmwarevsphere]] |
  
-Créez donc la machine virtuelle **manager1** :+Commencez par installer Oracle VirtualBox: 
 + 
 +<code> 
 +root@debian9:~/wordpress# cd ~ 
 +root@debian9:~# apt install virtualbox-6.0 
 +</code> 
 + 
 +Créez maintenant la machine virtuelle **manager1** :
  
 <code> <code>
Ligne 622: 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:~$ exit
 </code> </code>
  
Ligne 628: Ligne 716:
 **Important** - Notez que la distribution de la VM est **[[http://boot2docker.io/|Boot2Docker]]**. Cette distribution est basée sur **[[http://tinycorelinux.net/|Tiny Core Linux]]**, s'exécute entièrement dans la mémoire vive, pèse 27 Mo et démarre en approximativement 5 secondes. **Important** - Notez que la distribution de la VM est **[[http://boot2docker.io/|Boot2Docker]]**. Cette distribution est basée sur **[[http://tinycorelinux.net/|Tiny Core Linux]]**, s'exécute entièrement dans la mémoire vive, pèse 27 Mo et démarre en approximativement 5 secondes.
 </WRAP> </WRAP>
 +
 +Installez maintenant le paquet **mlocate** :
 +
 +<code>
 +root@debian9:~# apt install mlocate
 +...
 +</code>
  
 Ayant été créées par root, les VM Docker ainsi que leurs fichiers associés sont stockés dans le répertoire **/root/.docker/machine/machines/** : Ayant été créées par root, les VM Docker ainsi que leurs fichiers associés sont stockés dans le répertoire **/root/.docker/machine/machines/** :
  
 <code> <code>
 +root@debian9:~# updatedb
 root@debian9:~# locate manager1 root@debian9:~# locate manager1
 /root/.docker/machine/machines/manager1 /root/.docker/machine/machines/manager1
Ligne 662: Ligne 758:
  
 <code> <code>
 +root@debian9:~# docker-machine ssh manager1
 docker@manager1:~$ docker swarm init --advertise-addr 192.168.99.100 docker@manager1:~$ docker swarm init --advertise-addr 192.168.99.100
 Swarm initialized: current node (yuwpmvtfmdxn8i7nllkyzkxkp) is now a manager. Swarm initialized: current node (yuwpmvtfmdxn8i7nllkyzkxkp) is now a manager.
Ligne 1382: Ligne 1479:
 Status: Error: no such service: web, Code: 1 Status: Error: no such service: web, Code: 1
 </code> </code>
 +
 +Sortez de manager1 et démarrez le serveur VNC dans la machine virtuelle **debian9** en tant que **trainee** :
 +
 +<code>
 +docker@manager1:/$ exit
 +root@debian9:~# exit
 +trainee@debian9:~$ vncserver
 +
 +New 'X' desktop is debian9.i2tch.loc:1
 +
 +Starting applications specified in /home/trainee/.vnc/xstartup
 +Log file is /home/trainee/.vnc/debian9.i2tch.loc:1.log
 +</code>
 +
 +====3.11 - Sauvegarder Docker Swarm====
 +
 +La configuration de Docker Swarm est contenue dans le répertoire **/var/lib/docker/swarm** de chaque Manager dans le Swarm. Ce processus necéssite qu'il y ait au moins **deux** Managers dans le Swarm. Le procédure de sauvegarde est :
 +
 +  * arrêt du service Docker sur le Manager à sauvegarder,
 +  * sauvegarde du répertoire **/var/lib/docker/swarm**,
 +  * 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 **/var/lib/docker/swarm** dans le nouveau Manager,
 +  * restauration du répertoire **/var/lib/docker/swarm** dans le nouveau Manager à partir de la sauvegarde,
 +  * exécution de la commande **docker swarm init --force-new-cluster** sur le nouveau Manager,
 +  * ajout des Managers et Workers à Swarm.
  
 ----- -----
-<html> 
-<div align="center"> 
-Copyright © 2021 Hugh NORRIS 
-</div> 
-</html> 
  
 +Copyright © 2022 Hugh Norris.
Menu