Docker permet de créer, déployer et exécuter des applications dans des conteneurs. Les conteneurs sont des environnements légers, portables, isolés et reproductibles qui facilitent le déploiement d'applications sur différentes plateformes.
📑 Sommaire
📌 Présentation
Docker permet de créer, déployer et exécuter des applications dans des conteneurs. Les conteneurs sont des environnements légers, portables, isolés et reproductibles.
Contrairement aux machines virtuelles, les conteneurs Docker :
- Partagent le noyau du système d'exploitation hôte
- Démarrent en quelques secondes
- Utilisent moins de ressources (mémoire, CPU)
- Offrent une portabilité entre différents environnements
1. 🧰 Installation
Docker est disponible sur les principales plateformes :
| Plateforme | Commande |
|---|---|
| Windows (Chocolatey) | |
| Ubuntu | |
| Mac (Homebrew) | |
Pour vérifier l'installation :
docker --version
docker info
2. 📦 Gestion des images
Les images Docker sont les modèles qui servent à créer des conteneurs :
docker images # Liste les images locales
docker pull nginx # Télécharge l'image nginx
docker pull python:3.9 # Télécharge une version spécifique de Python
docker rmi image_id # Supprime une image locale
docker image prune # Supprime toutes les images inutilisées
3. 🚀 Gestion des conteneurs
Commandes essentielles pour gérer les conteneurs Docker :
docker run -d --name web nginx # Lance un conteneur en arrière-plan
docker ps # Liste les conteneurs en cours d'exécution
docker ps -a # Liste tous les conteneurs
docker stop web # Stoppe le conteneur
docker start web # Redémarre le conteneur
docker rm web # Supprime le conteneur
docker logs -f web # Affiche les logs du conteneur en temps réel
docker container prune # Supprime tous les conteneurs arrêtés
Options courantes pour la commande docker run :
docker run -d # Mode détaché (en arrière-plan)
docker run -p 8080:80 # Mappage de port (hôte:conteneur)
docker run -e VAR=valeur # Variables d'environnement
docker run --restart=always # Redémarrage automatique
4. 📁 Volumes et persistance
Les volumes permettent de conserver les données même après suppression du conteneur :
docker volume create monvolume
docker run -d --name app \
-v monvolume:/app/data \
myapp
Types de montages :
- Volumes nommés : gérés par Docker
- Volumes liés : montages de répertoires de l'hôte
# Montage d'un répertoire de l'hôte
docker run -v /chemin/hote:/chemin/conteneur nginx
5. 🛠️ Réseaux personnalisés
Docker permet de créer des réseaux isolés pour vos conteneurs :
docker network create monreseau
docker run -d --name web1 --network monreseau nginx
docker run -d --name web2 --network monreseau nginx
Les conteneurs sur le même réseau peuvent communiquer par leur nom :
docker exec web2 ping web1
Commandes pour la gestion des réseaux :
docker network ls # Liste les réseaux
docker network inspect monreseau # Détails sur un réseau
docker network rm monreseau # Supprime un réseau
6. 📜 Dockerfile de base
Un Dockerfile permet de créer vos propres images Docker :
# Exemple minimal de Dockerfile
FROM python:3.10-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
Instructions courantes dans un Dockerfile :
FROM: Image de baseWORKDIR: Répertoire de travailCOPY/ADD: Copie de fichiersRUN: Exécution de commandesENV: Variables d'environnementEXPOSE: Ports à exposerCMD/ENTRYPOINT: Commande de démarrage
Construction de l'image :
docker build -t monimage:1.0 .
7. 🧪 Commandes avancées
Commandes pour des utilisations plus avancées :
docker exec -it web bash # Accès shell dans un conteneur
docker build -t monimage . # Construire une image locale
docker-compose up -d # Lancer via fichier docker-compose.yml
docker stats # Surveiller l'utilisation des ressources
docker inspect conteneur_id # Détails sur un conteneur
docker cp fichier.txt web:/app/ # Copier des fichiers vers un conteneur
🎓 Ressources
Pour approfondir vos connaissances sur Docker :