61 lines
2.4 KiB
Plaintext
61 lines
2.4 KiB
Plaintext
---
|
|
title: Récapitulatif
|
|
description: Toutes les notions du cours Docker en une page.
|
|
---
|
|
|
|
| Notion | En une phrase |
|
|
| --- | --- |
|
|
| Docker | Empaquette l'application et son environnement dans une image reproductible. |
|
|
| Engine / Desktop | Engine est le daemon Linux ; Desktop le fait tourner dans une VM Linux sur Mac et Windows. |
|
|
| Conteneur / VM | Une VM possède un noyau invité ; un conteneur partage le noyau de l'hôte. |
|
|
| Image | Template figé en lecture seule, composé de couches, existant ou construit par un Dockerfile. |
|
|
| Cycle | Code + Dockerfile → build → image → run → conteneur. |
|
|
| Compose | Décrit et orchestre une stack multi-services dans un YAML déclaratif. |
|
|
| Volume | Stockage persistant découplé du conteneur et géré par Docker. |
|
|
| Réseau | Réseau bridge privé où les services se joignent par leur nom. |
|
|
| Mapping de ports | Publie un port du conteneur vers l'hôte ; le reste demeure interne. |
|
|
| Déploiement | Build une fois, push dans un registry, puis pull et run sur le serveur. |
|
|
| Testcontainers | Infrastructure réelle, isolée et jetable, démarrée par les tests. |
|
|
|
|
## Les commandes essentielles
|
|
|
|
```bash
|
|
# Construire une image
|
|
docker build -t mon-app:1.0.0 .
|
|
|
|
# Lancer un conteneur
|
|
docker run --rm mon-app:1.0.0
|
|
|
|
# Démarrer une stack Compose
|
|
docker compose up -d --build
|
|
|
|
# Voir les conteneurs
|
|
docker compose ps
|
|
|
|
# Suivre les journaux
|
|
docker compose logs --follow
|
|
|
|
# Arrêter la stack sans supprimer les volumes
|
|
docker compose down
|
|
|
|
# Récupérer et lancer les images de production
|
|
docker compose pull
|
|
docker compose up -d --no-build
|
|
```
|
|
|
|
## Les règles à retenir
|
|
|
|
1. Épingle les versions des images au lieu de dépendre de `latest`.
|
|
2. Ordonne le Dockerfile du plus stable au plus volatil.
|
|
3. Utilise un `.dockerignore` pour garder un contexte de build propre.
|
|
4. Sépare le builder et le runtime avec un build multi-stage.
|
|
5. Stocke les données persistantes dans des volumes sauvegardés.
|
|
6. Utilise les noms de services, pas `localhost`, entre conteneurs.
|
|
7. Ne publie que les ports réellement nécessaires.
|
|
8. Construis l'image dans la CI et exécute cette même image en production.
|
|
9. Préfère une infrastructure de test réelle et isolée lorsque l'intégration compte.
|
|
|
|
<Callout title="Fin du cours" type="success">
|
|
Tu peux maintenant revenir au [cas pratique](/docs/cas-pratique/react-nest-postgresql) pour relire l'ensemble des concepts dans une seule stack.
|
|
</Callout>
|