Introduction à
Docker
Par Dirane TAFEN
Présentation du formateur
Introduction à la conteneurisation
Installation de Docker
Gestion des images
Plan Gestion des reseaux
Gestion du stockage
Introduction à l’infrastructure as code (IaC) avec docker-compose
Introduction à l’orchestration avec Docker Swarm
Mini-projet
Présentation du formateur
Introduction à la conteneurisation
Installation de Docker
Gestion des images
Plan Gestion des reseaux
Gestion du stockage
Introduction à l’infrastructure as code (IaC) avec docker-compose
Introduction à l’orchestration avec Docker Swarm
Mini-projet
Présentation du
formateur
• Dirane TAFEN (formateur et consultant
DevOps)
• Capgemini
• Sogeti
• ATOS
• BULL
• AIRBUS
• ENEDIS
Présentation du formateur
Introduction à la conteneurisation
Installation de Docker
Gestion des images
Plan Gestion des reseaux
Gestion du stockage
Introduction à l’infrastructure as code (IaC) avec docker-compose
Introduction à l’orchestration avec Docker Swarm
Mini-projet
Introduction à la conteneurisation
• Agilité
• Flexibilité
• Résilience
• Scalabilité
Présentation du formateur
Introduction à la conteneurisation
Installation de Docker
Gestion des images
Plan Gestion des reseaux
Gestion du stockage
Introduction à l’infrastructure as code (IaC) avec docker-compose
Introduction à l’orchestration avec Docker Swarm
Mini-projet
Installation de docker (1/5): Editions
Installation de docker (2/5): machine
locale
• Mac: Docker for Mac
• Windows: Docker for Windows
• Linux: Docker for Linux Distribution (centos, Debian, ubuntu …)
• Mac + Windows: Docker Toolbox
Installation de docker (3/5): Serveur
• Linux Serveur: Docker for Linux Distribution
• Windows Serveur:
• 2016: Docker for Windows
• 2019: Rôle et Fonctionalité
Installation de docker (4/5): Docker-
machine
Installation de docker (5/5): Cloud Solutions
• ACS
• ECS + Fargate
• GCP
• Autres (OVH, Docker Cloud …)
TP-0: Découvrir la plateforme de TP
• Accès
• Labs
• Durée d’une session
• Données sensibles
• Agrandir la fenêtre du terminal
• Connexion ssh
• Installation de paquet
• Ouverture de port
TP-1: Installation et Test de Docker
• Installation de Docker sur Centos
• Tâche de post installation
• Vérification de l’installation
• Utiliser la documentation Docker afin d’être à jour
• Lancement de votre premier conteneur (nginx)
• Réaliser la même tâche sur la plateforme de labs
• Utilisation des variables d’environnement
Présentation du formateur
Introduction à la conteneurisation
Installation de Docker
Gestion des images
Plan Gestion des reseaux
Gestion du stockage
Introduction à l’infrastructure as code (IaC) avec docker-compose
Introduction à l’orchestration avec Docker Swarm
Mini-projet
Gestion des images (1/5): Workflow
Gestion des images (2/5): Anatomie d’une
image
• Lecture seule
• Réutilisation
• Couche (Layer)
Gestion des images (3/5): Instructions
Gestion des images (4/5): Exemple
Gestion des images (5/5): Resgistre
TP-2: Gérez vos images Docker
• Créez votre propre image (conteneuriser l’application
[Link]
• Testez votre image
• Gérez vos images sur le dockerhub
• Liez votre compte github au dockerhub (automatisation)
Présentation du formateur
Introduction à la conteneurisation
Installation de Docker
Gestion des images
Plan Gestion des reseaux
Gestion du stockage
Introduction à l’infrastructure as code (IaC) avec docker-compose
Introduction à l’orchestration avec Docker Swarm
Mini-projet
Gestion des
réseaux (1/2):
Objectifs
Gestion des réseaux (2/2): Types de réseau
TP-3: Gérez vos reseaux Docker
• Créez un reseau docker de type bridge
• Créez deux conteneurs ubuntu dans le reseau créé précédement
• Installer la commande ping et tentez de pinguer les conteneurs entre eux avec
leur ip et par leur nom
Présentation du formateur
Introduction à la conteneurisation
Installation de Docker
Gestion des images
Plan Gestion des reseaux
Gestion du stockage
Introduction à l’infrastructure as code (IaC) avec docker-compose
Introduction à l’orchestration avec Docker Swarm
Mini-projet
Gestion du
stockage
(1/2):
Problème
Gestion du stockage (2/2): Type de stockage
TP-4: Gérez votre stockage persistent
• Créez un volume de type volumes
• Créez deux conteneurs ubuntu (ubuntu1 et ubuntu2) et Montez le volume
créé dans le repertoire /tmp de chacun des conteneurs ubuntu
• Créez un fichier [Link] dans repertoire /tmp de ubuntu1 et verifies qu’il
est bien present dans /tmp de ubuntu2
• Créez un conteneur apache dont le site internet affiché sera celui hébergé
ici : [Link] (utilisez un
volume de type bind mount), n’oubliez pas de verifier que le site est bien
accéssible
Présentation du formateur
Introduction à la conteneurisation
Installation de Docker
Gestion des images
Plan Gestion des reseaux
Gestion du stockage
Introduction à l’infrastructure as code (IaC) avec docker-compose
Introduction à l’orchestration avec Docker Swarm
Mini-projet
Introduction à l’infrastructure as code (IaC)
avec docker-compose(1/2): Définition
• Automatisation
• Redéploiement
• Versionning
Introduction à
l’infrastructure
as code (IaC)
avec docker-
compose(2/2):
Anatomie
TP-5: IaC avec docker-compose
• Déployer le logiciel odoo à l’aide de docker-compose
• Vous pouvez vous inspirer de la documentation disponible sur le dockerhub
: [Link]
• Modifiez le docker-compose afin d’exposer le port 80 du conteneur odoo à
l’extérieur et pas le 8069
• Modifiez le docker-compose afin que le conteneur odoo et db soit dans le
même réseau specifique qui s’appellera odoo_network et de type bridge
• Vérifiez que l’application Odoo est bien accéssible
Présentation du formateur
Introduction à la conteneurisation
Installation de Docker
Gestion des images
Plan Gestion des reseaux
Gestion du stockage
Introduction à l’infrastructure as code (IaC) avec docker-compose
Introduction à l’orchestration avec Docker Swarm
Mini-projet
Introduction à l’orchestration avec Docker
Swarm (1/2): Clustering
• Fail-Over
• Scalabilité
• Loadbalancing
Introduction à l’orchestration avec Docker
Swarm (2/2): IaC
• Replica
• Update strategy
TP-6: Docker Swarm (1 master et 1 node)
• Installer un cluster swarm compose d’un master et d’un node
• Utilisez la plateforme de labs pour deployer deux instances (1 master et 1 worker)
• Initialisez le cluster et rajouter le worker dans le cluster
• Déployez l’application de gestion de vote suivante:
[Link]
• Testez que l’application fonctionne
Présentation du formateur
Introduction à la conteneurisation
Installation de Docker
Gestion des images
Plan Gestion des reseaux
Gestion du stockage
Introduction à l’infrastructure as code (IaC) avec docker-compose
Introduction à l’orchestration avec Docker Swarm
Mini-projet
Mini-projet: Student-list
[Link]