feat: docs
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
---
|
||||
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>
|
||||
Reference in New Issue
Block a user