Présentationpar DevBlog10 diapositives
Docker pour les développeurs
Images, conteneurs, couches, multi-stage et Compose : l'essentiel de Docker pour livrer une application de façon reproductible.
- #docker
- #devops
- #presentation
Docker pour les développeurs
« Ça marche sur ma machine » n'est plus une excuse.
Le problème
- Versions de Node différentes d'un poste à l'autre
- Dépendances système manquantes
- Production qui diffère du développement
Docker emballe l'application et son environnement dans une unité reproductible.
Image et conteneur
| Concept | Analogie |
|---|---|
| Image | La recette figée (en lecture seule) |
| Conteneur | Un plat préparé à partir de la recette |
| Registre | Le livre de recettes partagé |
Une image, plusieurs conteneurs.
Un premier Dockerfile
FROM node:24-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
CMD ["npm", "run", "start"]Chaque instruction crée une couche mise en cache.
L'ordre des couches compte
flowchart LR
A[package.json] --> B[npm ci]
B --> C[Code source]
C --> D[Build]Ce qui change rarement en premier, ce qui change souvent en dernier : le cache reste valide plus longtemps.
Multi-stage
FROM node:24-alpine AS build
RUN npm ci && npm run build
FROM node:24-alpine AS runner
COPY --from=build /app/.next ./.next- Image finale plus petite
- Pas d'outils de build en production
- Surface d'attaque réduite
Commandes du quotidien
docker build -t mon-app .
docker run -p 3000:3000 mon-app
docker ps
docker logs -f <conteneur>
docker exec -it <conteneur> shDocker Compose
services:
web:
build: .
ports:
- "3000:3000"
db:
image: postgres:17
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}Une commande pour tout lancer : docker compose up.
Bonnes pratiques
- Un fichier
.dockerignore - Ne pas exécuter en root (
USER node) - Jamais de secret dans l'image
- Épingler les versions des images de base
À retenir
- Une image reproductible vaut mieux qu'un guide d'installation
- Soignez l'ordre des couches
- Le multi-stage garde l'image de production légère
1 / 10
Flèches ← → pour naviguer · F pour le plein écran