---
title: Docker - Support de cours
description: Comprendre les images, les conteneurs, Compose, le réseau, le déploiement et les tests.
---

Ce cours explique pourquoi Docker est utile, comment il fonctionne et comment l'utiliser sur une application complète. Le contenu du support PDF a été réorganisé en chapitres courts pour faciliter la lecture et la recherche.

<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 ;
- déployer une image construite par une CI/CD ;
- 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="Production" href="/docs/production/deploiement">
    Construire une fois, publier dans un registry et exécuter partout.
  </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** → docker build → **image** → docker run ou docker compose up → **conteneur**

Une image est un artefact figé et reproductible. Un conteneur est une instance vivante de cette image. Docker Compose permet ensuite de lancer et relier plusieurs conteneurs comme une seule application.

## Accès rapide

Si tu connais déjà les bases, tu peux aller directement au [cas pratique complet](/docs/cas-pratique/react-nest-postgresql) ou au [récapitulatif](/docs/recapitulatif).
