Docker : Optimisation et bonnes pratiques
Docker a révolutionné le déploiement d’applications, mais créer des images optimisées nécessite de suivre certaines bonnes pratiques.
Optimisation des images Docker
1. Utilisez des images de base légères
# ❌ Évitez les images complètes
FROM ubuntu:latest
# ✅ Préférez les images Alpine
FROM node:18-alpine
2. Multi-stage builds
# Stage de build
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
# Stage de production
FROM node:18-alpine AS production
WORKDIR /app
COPY --from=builder /app/node_modules ./node_modules
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
Sécurité des conteneurs
Utilisateur non-root
# Créer un utilisateur non-privilégié
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001
USER nextjs
Scan de vulnérabilités
# Analyser les vulnérabilités
docker scout cves my-image:latest
# Utiliser Trivy
trivy image my-image:latest
Gestion des layers
- Minimisez le nombre de layers
- Combinez les commandes RUN
- Utilisez .dockerignore
- Nettoyez les caches
# ✅ Bonne pratique
RUN apt-get update && \
apt-get install -y curl && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
Monitoring et logging
- Utilisez des health checks
- Configurez les logs appropriés
- Limitez les ressources
- Surveillez les métriques
Docker bien maîtrisé est un outil puissant pour des déploiements fiables et scalables.