---
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é.

<Callout title="Parcours conseillé" type="info">
  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.
</Callout>

## 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

<Cards>
  <Card title="Fondamentaux" href="/docs/fondamentaux/pourquoi-docker">
    Pourquoi Docker, Engine et Desktop, conteneurs et machines virtuelles.
  </Card>
  <Card title="Images et builds" href="/docs/images-et-builds/images-docker">
    Images existantes ou custom, cycle de vie, cache et multi-stage.
  </Card>
  <Card title="Orchestration" href="/docs/orchestration/docker-compose">
    Compose, volumes, réseaux Docker et mapping de ports.
  </Card>
  <Card title="Cas pratique" href="/docs/cas-pratique/react-nest-postgresql">
    Une stack React, NestJS, PostgreSQL et Nginx de bout en bout.
  </Card>
  <Card title="Serveur" href="/docs/serveur/bien-demarrer">
    Sécuriser SSH, limiter les ports et préparer un hôte Docker.
  </Card>
  <Card title="Déploiement" href="/docs/production/deploiement">
    Livrer une image versionnée, contrôler sa santé et revenir en arrière.
  </Card>
  <Card title="CI/CD" href="/docs/ci-cd/principes">
    Valider le code, publier les images et automatiser la mise en production.
  </Card>
  <Card title="Tests" href="/docs/tests/testcontainers">
    Infrastructure réelle, isolée et jetable pour les tests e2e.
  </Card>
</Cards>

## 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).
