Qu'est-ce que Docker ?
Qu’est-ce que Docker ?
Docker est une plateforme open-source qui permet de conteneuriser vos applications. Dans cette leçon, nous allons comprendre pourquoi Docker a révolutionné le monde du développement et de l’infrastructure.
Le problème que Docker résout
Le cauchemar des environnements
Vous avez sûrement déjà entendu cette phrase frustrante :
“Mais ça marche sur ma machine !”
Ce problème, extrêmement courant, survient quand :
- Les versions des dépendances diffèrent entre développeurs
- L’environnement de production ne correspond pas au développement
- Chaque développeur a une configuration système différente
- Les mises à jour système cassent des applications
La solution Docker
Docker résout ces problèmes en empaquetant votre application avec toutes ses dépendances dans un conteneur portable et reproductible.
Conteneurs vs Machines Virtuelles
Beaucoup confondent conteneurs et machines virtuelles. Voici leurs différences fondamentales :
Tableau comparatif
| Aspect | Conteneur Docker | Machine Virtuelle |
|---|---|---|
| Démarrage | Secondes | Minutes |
| Taille | Mégaoctets (10-500 Mo) | Gigaoctets (1-20 Go) |
| Isolation | Niveau processus | Complète (OS séparé) |
| Performance | Quasi-native | Overhead du hyperviseur |
| Portabilité | Excellente | Bonne |
| Densité | Centaines par serveur | Dizaines par serveur |
💡 À retenir : Les conteneurs partagent le kernel du système hôte, ce qui les rend beaucoup plus légers que les VMs.
Les concepts clés de Docker
1. Image Docker
Une image est un template immuable (en lecture seule) contenant :
- Le code de votre application
- Le runtime (Node.js, Python, Java…)
- Les bibliothèques et dépendances
- Les variables d’environnement
- Les fichiers de configuration
2. Conteneur
Un conteneur est une instance en cours d’exécution d’une image. Vous pouvez :
- Lancer plusieurs conteneurs depuis la même image
- Les démarrer, arrêter, redémarrer
- Les connecter entre eux via un réseau
3. Dockerfile
Un Dockerfile est un fichier texte contenant les instructions pour construire une image.
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
4. Docker Hub (Registry)
Le Docker Hub est le registre public d’images Docker où vous pouvez télécharger des images officielles.
Exercice pratique
Vérifions que Docker est correctement installé :
# Vérifier la version
docker --version
# Lancer le conteneur de test
docker run hello-world
Si vous voyez le message “Hello from Docker!”, votre installation fonctionne ! 🎉
Points clés à retenir
✅ Docker résout le problème “ça marche sur ma machine”
✅ Les conteneurs sont plus légers que les VMs
✅ Image = template immuable | Conteneur = instance en exécution
✅ Le Dockerfile définit comment construire une image
Prochaine étape
Dans la prochaine leçon, nous passerons à la pratique avec les commandes Docker essentielles ! 🚀