Aller au contenu

Master DevOps et Cloud Computing · ISET Tozeur

Docker : conteneurisation, orchestration et industrialisation d'applications

Construire, distribuer, sécuriser, orchestrer avec Swarm et livrer par CI/CD des applications conteneurisées.

  • 45 hde formation
  • 3crédits ECTS
  • 4parties
  • Dockermoteur de TP
  • Swarmorchestration

Syllabus

Syllabus

Site en construction

Toutes les pages existent ; celles marquées « Under construction » sont en cours de rédaction et seront complétées au fil de l'avancement du cours.

Fiche d'identification

Rubrique Description
Intitulé Docker : conteneurisation, orchestration et industrialisation d'applications
Public Master DevOps et Cloud Computing, semestre 1
Volume horaire 45 h (15 séances de 3 h : environ 15 h de cours, 30 h de TP)
Crédits 3 ECTS
Prérequis Linux en ligne de commande, réseau (TCP/IP, DNS), notions de développement ; aucune expérience des conteneurs requise
Outils de TP Docker Engine ou Docker Desktop, au choix : Docker Desktop (Windows), Ubuntu Desktop ou Ubuntu Server (VM VMware Workstation) ; 3 VM Ubuntu pour le cluster Swarm (chapitres 11, 12 et 14) ; Docker Hub et GitHub (chapitres 4 et 13) ; voir l'annexe Environnement de travail

Objectif général

Concevoir, construire, distribuer, sécuriser et exploiter des applications conteneurisées avec Docker, les orchestrer avec Docker Compose et Docker Swarm, puis automatiser leur livraison par un pipeline CI/CD.

Acquis d'apprentissage

À la fin du cours, l'étudiant est capable de :

  • AA1 : expliquer le fonctionnement des conteneurs et l'architecture de Docker (comprendre)
  • AA2 : créer, exécuter et gérer le cycle de vie des conteneurs (appliquer)
  • AA3 : construire, versionner et distribuer des images via des registres (appliquer)
  • AA4 : gérer la persistance des données et le réseau des conteneurs (appliquer)
  • AA5 : orchestrer une application multi-conteneurs avec Docker Compose (créer)
  • AA6 : superviser et diagnostiquer des conteneurs en exploitation (analyser)
  • AA7 : optimiser et sécuriser des images et des conteneurs (analyser)
  • AA8 : déployer et exploiter une application sur un cluster Docker Swarm (appliquer)
  • AA9 : automatiser la construction, les tests et la livraison par un pipeline CI/CD (créer)

Compétences visées

Conteneurs (namespaces, cgroups, normes OCI), images et couches, registres, volumes, réseaux Docker, Compose, modèle de sécurité des conteneurs, architecture de Swarm (managers, workers, services, stacks), principes CI/CD.

Maîtrise de la ligne de commande Docker, écriture de Dockerfile et de fichiers Compose, publication d'images, diagnostic et supervision de conteneurs, durcissement et analyse de vulnérabilités, administration d'un cluster Swarm, pipelines GitHub Actions.

Rigueur et reproductibilité, esprit critique sur la sécurité, autonomie, travail en équipe, veille technologique.

Organisation du cours

Partie 1 : Fondations (12 h)

Présentation de la Partie 1

Chapitre Contenu Ressources
1. Introduction aux conteneurs (AA1) Conteneur et machine virtuelle, namespaces et cgroups, architecture de Docker (client, daemon, containerd, runc), normes OCI, choix de l'environnement de TP Cours · Lab 1.1 : Installer Docker · Lab 1.2 : Premiers conteneurs · Quiz
2. Cycle de vie des conteneurs (AA2) Commandes run, ps, stop, rm, publication de ports, variables d'environnement, logs, exec, inspect, limites de ressources de base Cours · Lab 2.1 : Gérer le cycle de vie · Lab 2.2 : Publier et configurer un service · Quiz
3. Images et Dockerfile (AA3) Couches et système de fichiers en union, instructions du Dockerfile, build, cache de construction, tags, .dockerignore Cours · Lab 3.1 : Écrire un premier Dockerfile · Lab 3.2 : Cache et couches · Quiz
4. Registres et distribution (AA3) Rôle d'un registre, Docker Hub, nommage et tags, versionnage des images, registre privé Cours · Lab 4.1 : Publier sur Docker Hub · Lab 4.2 : Déployer un registre privé · Quiz
Mini-projet 1 Conteneuriser et publier une application web Énoncé

Partie 2 : Données, réseau et exploitation (12 h)

Présentation de la Partie 2

Chapitre Contenu Ressources
5. Volumes et persistance (AA4) Volumes nommés, bind mounts, tmpfs, cycle de vie des données, sauvegarde et restauration Cours · Lab 5.1 : Persister des données · Lab 5.2 : Sauvegarder et restaurer un volume · Quiz
6. Réseau Docker (AA4) Pilote bridge, réseaux définis par l'utilisateur, DNS interne, publication de ports, modes host et none Cours · Lab 6.1 : Réseaux et résolution DNS · Lab 6.2 : Isoler une application par réseaux · Quiz
7. Docker Compose (AA5) Services, réseaux et volumes dans un fichier compose, variables et fichier .env, healthchecks, dépendances entre services Cours · Lab 7.1 : Première pile Compose · Lab 7.2 : Application trois niveaux avec Compose · Quiz
8. Observabilité et dépannage (AA6) Logs, stats, events, limites de ressources, healthchecks, démarche de diagnostic, entretien du moteur (espace disque, nettoyage) Cours · Lab 8.1 : Superviser une pile applicative · Lab 8.2 : Dépanner des pannes imposées · Quiz
Mini-projet 2 Pile applicative persistante, cloisonnée et supervisée Énoncé

Partie 3 : Durcissement et orchestration Swarm (12 h)

Présentation de la Partie 3

Chapitre Contenu Ressources
9. Optimisation des images (AA7, AA3) Construction multi-stage, BuildKit, images minimales, comparaison de taille et de temps de construction Cours · Lab 9.1 : Construire avec multi-stage · Lab 9.2 : Réduire et comparer des images · Quiz
10. Sécurité des conteneurs (AA7) Utilisateur non root, système de fichiers en lecture seule, capabilities, gestion des secrets, analyse de vulnérabilités des images Cours · Lab 10.1 : Durcir un conteneur · Lab 10.2 : Analyser et corriger une image · Quiz
11. Swarm : cluster et services (AA8) Pourquoi orchestrer, architecture managers et workers, initialisation et adhésion, services répliqués et globaux, routing mesh, mise à l'échelle, maintenance d'un nœud Cours · Lab 11.1 : Créer un cluster Swarm · Lab 11.2 : Déployer et mettre à l'échelle des services · Quiz
12. Swarm : stacks et exploitation (AA8) Réseaux overlay, stacks à partir d'un fichier Compose, configs et secrets Swarm, mises à jour progressives et retour arrière, contraintes de placement, tolérance aux pannes, comparaison avec Kubernetes Cours · Lab 12.1 : Déployer une stack · Lab 12.2 : Mises à jour, secrets et panne d'un nœud · Quiz
Mini-projet 3 Application sécurisée sur un cluster Swarm Énoncé

Partie 4 : Industrialisation (9 h)

Présentation de la Partie 4

Chapitre Contenu Ressources
13. Intégration continue (AA9) Principes CI/CD, GitHub Actions, pipeline de construction, tests, publication versionnée d'une image Cours · Lab 13.1 : Pipeline de construction d'image · Lab 13.2 : Tests et publication versionnée · Quiz
14. Livraison continue (AA9, AA8) Déploiement automatisé sur le cluster Swarm, gestion des versions, retour arrière automatisé Cours · Lab 14.1 : Déploiement automatisé sur Swarm · Lab 14.2 : Pipeline complet avec retour arrière · Quiz
15. Synthèse et ouverture vers Kubernetes (AA1 à AA9) Bilan des acquis, bonnes pratiques de bout en bout, limites de Swarm, passage vers Kubernetes Cours

Projet final

Plateforme conteneurisée, sécurisée et livrée par pipeline

Méthodes pédagogiques

Cours interactifs courts, TP guidés puis de plus en plus autonomes, études de cas de pannes, mini-projets en binôme à la fin de chaque partie, projet final en binôme avec soutenance. Les étudiants choisissent leur environnement de TP parmi trois options classées par niveau de complexité.

Évaluation

Modalité Pondération
Contrôle continu : TP et quiz 30 %
Mini-projets (15 %) et projet final (25 %) 40 %
Examen pratique chronométré 30 %

Références