---
title: Docker, déploiement et CI/CD
description: Comprendre les conteneurs, préparer un serveur et automatiser une livraison de bout en bout.
---
Ce cours explique pourquoi Docker est utile, comment il fonctionne et comment l'utiliser sur une application complète. Les supports ont été réorganisés en chapitres courts qui vont du premier conteneur jusqu'au déploiement automatisé.
Lis les chapitres dans l'ordre lors d'une première découverte. Les liens « Page précédente » et « Page suivante » permettent de suivre le cours sans revenir au sommaire.
## Objectifs du cours
À la fin du parcours, tu sauras :
- expliquer la différence entre une image, un conteneur et une machine virtuelle ;
- construire une image reproductible avec un Dockerfile ;
- optimiser le cache de build et utiliser un build multi-stage ;
- orchestrer plusieurs services avec Docker Compose ;
- gérer la persistance, les réseaux et les ports ;
- préparer et sécuriser un serveur de production ;
- construire une pipeline d'intégration et de déploiement continus ;
- déployer, vérifier puis restaurer une image versionnée ;
- lancer une infrastructure de test isolée avec Testcontainers.
## Plan
Pourquoi Docker, Engine et Desktop, conteneurs et machines virtuelles.
Images existantes ou custom, cycle de vie, cache et multi-stage.
Compose, volumes, réseaux Docker et mapping de ports.
Une stack React, NestJS, PostgreSQL et Nginx de bout en bout.
Sécuriser SSH, limiter les ports et préparer un hôte Docker.
Livrer une image versionnée, contrôler sa santé et revenir en arrière.
Valider le code, publier les images et automatiser la mise en production.
Infrastructure réelle, isolée et jetable pour les tests e2e.
## Le fil conducteur
**Code et Dockerfile** → CI → **image versionnée** → registry → déploiement → **conteneur vérifié**
Une image est un artefact figé et reproductible. Un conteneur est une instance vivante de cette image. Docker Compose lance la stack ; la CI/CD garantit que l'image testée est celle qui atteint le serveur.
## Accès rapide
Si tu connais déjà les bases, va directement au [cas pratique complet](/docs/cas-pratique/react-nest-postgresql), à la [préparation du serveur](/docs/serveur/bien-demarrer), au [flux CI/CD complet](/docs/ci-cd/flux-complet) ou au [récapitulatif](/docs/recapitulatif).