retour
01/04
section 01
Conteneurs vs machines virtuelles
Connectez-vous pour sauvegarder votre progression et acceder aux quiz
Se connecterDocker est une plateforme de conteneurisation qui permet de packager une application avec toutes ses dependances dans un conteneur leger et portable. Contrairement aux machines virtuelles, les conteneurs partagent le noyau du systeme hote, ce qui les rend beaucoup plus legers et rapides.
Comparaison VM vs Conteneur
| Critere | Machine Virtuelle | Conteneur Docker |
|---|---|---|
| Taille | Plusieurs Go | Quelques Mo |
| Demarrage | Minutes | Secondes |
| Isolation | Complete (OS entier) | Processus isole |
| Performance | Overhead important | Quasi-native |
| Portabilite | Dependante de l'hyperviseur | Fonctionne partout |
Pourquoi Docker pour le developpement web ?
1."Ca marche sur ma machine" : Docker garantit que l'environnement est identique partout (dev, staging, production)
2.Pas d'installation complexe : plus besoin d'installer PHP, MySQL, Redis, etc. sur votre machine
3.Multi-projets : chaque projet peut avoir sa propre version de PHP, sa propre base de donnees
4.Onboarding rapide : un nouveau developpeur demarre en 5 minutes avec
docker compose upInstallation de Docker
bash# Linux (Ubuntu/Debian)
sudo apt update
sudo apt install docker.io docker-compose-v2
sudo usermod -aG docker $USER
# Se deconnecter/reconnecter pour appliquer le groupe
# Verifier l'installation
docker --version
docker compose version
# Tester avec Hello World
docker run hello-worldConcepts fondamentaux
■Image : un template en lecture seule contenant l'OS, les dependances et le code. C'est la "recette" du conteneur.
■Conteneur : une instance en cours d'execution d'une image. C'est le "gateau" fabrique a partir de la recette.
■Dockerfile : le fichier qui decrit comment construire une image.
■Registry : un depot d'images (Docker Hub, GitHub Container Registry).
bash# Telecharger une image depuis Docker Hub
docker pull php:8.3-fpm
# Lister les images locales
docker images
# Lancer un conteneur
docker run -d --name mon-php php:8.3-fpm
# -d : detached (en arriere-plan)
# --name : nom du conteneur
# Lister les conteneurs en cours
docker ps
# Lister tous les conteneurs (y compris arretes)
docker ps -a
# Arreter un conteneur
docker stop mon-php
# Supprimer un conteneur
docker rm mon-php
# Supprimer une image
docker rmi php:8.3-fpm// voir aussi