Dans le monde en constante évolution du développement logiciel, Docker s’est imposé comme un outil essentiel pour les développeurs et les équipes IT. Grâce à sa capacité à encapsuler des applications dans des conteneurs légers et portables, Docker simplifie le déploiement, l’évolutivité et la gestion des applications. En éliminant les incompatibilités environnementales, il permet aux développeurs de travailler dans des environnements cohérents, du développement à la production. Cette uniformité réduit non seulement le temps de déploiement, mais améliore également la collaboration entre les équipes. En intégrant Docker dans votre flux de travail, vous adoptez une approche moderne et efficace qui répond aux défis actuels de l’optimisation des ressources et de la rapidité de mise sur le marché. Docker n’est pas seulement une technologie; c’est une révolution dans la manière dont nous concevons et déployons les logiciels.
1. Installation de Docker
- Windows/macOS : Téléchargez Docker Desktop.
- Linux :
sudo apt update && sudo apt install docker.io
sudo systemctl enable --now docker
2. Concepts Clés
- Image : Modèle prédéfini pour créer des conteneurs (ex:
nginx
,python
). - Conteneur : Instance exécutable d’une image.
- Dockerfile : Fichier de configuration pour construire une image personnalisée.
- Docker Hub : Registre public pour partager des images (ex: hub.docker.com).
3. Commandes de Base
Commande | Description |
---|---|
docker run -d -p 80:80 nginx | Lancer un conteneur Nginx en arrière-plan (-d ), mappant le port 80 de l’hôte au port 80 du conteneur. |
docker ps | Lister les conteneurs en cours d’exécution. |
docker stop <ID> | Arrêter un conteneur. |
docker rm <ID> | Supprimer un conteneur. |
docker images | Lister les images locales. |
docker rmi <IMAGE> | Supprimer une image. |
4. Créer une Image Personnalisée
Étapes pour une application Python simple :
- Créez un fichier
app.py
:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello Docker!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
- Créez un
Dockerfile
:
# Image de base
FROM python:3.9-slim
# Copier le code
COPY app.py /app/
WORKDIR /app
# Installer les dépendances
RUN pip install flask
# Exposer le port
EXPOSE 5000
# Commande de démarrage
CMD ["python", "app.py"]
- Construisez et exécutez :
docker build -t mon-app .
docker run -d -p 5000:5000 mon-app
Accédez à http://localhost:5000
pour voir le résultat.
5. Gérer les Données avec des Volumes
- Lier un répertoire local :
docker run -v /chemin/local:/chemin/conteneur mon-image
- Créer un volume nommé :
docker volume create mon-volume
docker run -v mon-volume:/chemin/conteneur mon-image
6. Docker Compose pour des Applications Multi-Conteneurs
Créez un docker-compose.yml
:
version: '3'
services:
web:
image: mon-app
ports:
- "5000:5000"
db:
image: postgres
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
Lancez les services :
docker-compose up -d
7. Astuces de Débogage
- Voir les logs :
docker logs <ID_CONTAINER>
- Accéder au shell d’un conteneur :
docker exec -it <ID_CONTAINER> /bin/bash
8. Ressources pour Aller Plus Loin
- Documentation officielle : docs.docker.com.
- Tutoriels interactifs : Katacoda Docker Courses.
- Exercices pratiques : Dockerlabs.