Leçon 1 ⏱️ 20 min ✨ Aperçu gratuit

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

AspectConteneur DockerMachine Virtuelle
DémarrageSecondesMinutes
TailleMégaoctets (10-500 Mo)Gigaoctets (1-20 Go)
IsolationNiveau processusComplète (OS séparé)
PerformanceQuasi-nativeOverhead du hyperviseur
PortabilitéExcellenteBonne
DensitéCentaines par serveurDizaines 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 ! 🚀

📎 Ressources