5.3Docker pour Python
« Ça marche sur ma machine » — la phrase qui hante les mises en production. Docker y répond en empaquetant votre application Python avec son environnement complet (version de Python, dépendances, système) dans un conteneur qui s'exécute à l'identique partout : votre PC, celui d'un collègue, un serveur cloud.
Vous découvrez les notions clés — image, conteneur, Dockerfile — et comment conteneuriser une application Python (web ou data). C'est aujourd'hui un standard de l'industrie, incontournable pour le déploiement moderne et le travail en équipe.
Vocabulaire de la section
- Docker
- Outil de conteneurisation : empaquette une application et tout son environnement pour qu'elle tourne partout à l'identique.
- Image
- Modèle figé et réutilisable contenant l'application et ses dépendances. On en instancie des conteneurs.
- Conteneur
- Instance en cours d'exécution d'une image : une application isolée, légère et reproductible.
- Dockerfile
- Fichier de recette décrivant, étape par étape, comment construire l'image (base, dépendances, code, commande de lancement).
- docker build / run
- build construit l'image à partir du Dockerfile ; run lance un conteneur à partir de l'image.
Quel problème Docker résout-il principalement ?
En pratique — Conteneuriser une application Python
- Installez Docker Desktop. Préparez une petite app Python (ex. un script ou une API FastAPI) avec son requirements.txt.
- Écrivez un Dockerfile : image de base « FROM python:3.12-slim », copie du code, « RUN pip install -r requirements.txt », commande de lancement (CMD).
- Construisez l'image : « docker build -t mon-app . », puis lancez un conteneur : « docker run mon-app » (avec -p pour exposer un port si c'est une API).
- Modifiez le code, reconstruisez, relancez : mesurez la reproductibilité — le conteneur tourne à l'identique partout.
Points clés à retenir
- Docker empaquette l'app + son environnement : fini le « ça marche sur ma machine ».
- Image = modèle figé ; conteneur = instance en exécution.
- Le Dockerfile décrit la recette de construction de l'image.
- build (construire) puis run (lancer) : le cycle de base de Docker.
Questions fréquentes
Docker remplace-t-il les environnements virtuels (venv) ?
Ils opèrent à des niveaux différents. Le venv isole les dépendances Python d'un projet sur votre machine. Docker isole l'application ENTIÈRE (Python, système, dépendances) dans un conteneur portable. En pratique, on utilise souvent un venv en développement et Docker pour livrer/déployer.
Docker est-il nécessaire pour un débutant ?
Pas pour apprendre le langage. Mais dès qu'on déploie une application réelle, qu'on travaille en équipe ou qu'on vise le cloud, Docker devient un standard quasi incontournable. C'est une compétence très valorisée : l'aborder au niveau pro est le bon moment.