Tirer parti de la mise en cache des constructions
Optimisez les temps de construction Docker en comprenant et en utilisant efficacement le mécanisme de cache de construction de Docker.
Tirer parti de la mise en cache des constructions est une leçon Docker & DevOps Fundamentals gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Docker & DevOps Fundamentals, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Docker & DevOps Fundamentals comprend 4 leçons au total.
Construire plus vite grâce à la mise en cache
La création d’images Docker peut prendre du temps, en particulier pour les applications complexes. Le cache de construction de Docker est une fonctionnalité intelligente qui permet d’accélérer considérablement le processus !
Il fonctionne en réutilisant les couches des constructions précédentes, afin que Docker n’ait pas à tout reconstruire depuis zéro à chaque fois.

Construire couche par couche
Lorsque vous construisez une image Docker à l’aide d’un Dockerfile, Docker exécute chaque instruction ligne par ligne.
- Chaque instruction, comme
FROM,RUNouCOPY, crée une nouvelle « couche » dans votre image. - Ces couches sont empilées les unes sur les autres pour former l’image finale.
Vérification du cache Docker
Avant d’exécuter une instruction, Docker vérifie s’il a déjà construit exactement cette couche. Il compare :
- L’instruction elle-même (par exemple,
RUN apt update). - Le « contexte » de certaines instructions (par exemple, les fichiers copiés avec
COPY).
Si une couche correspondante est trouvée, Docker la réutilise depuis le cache au lieu d’exécuter à nouveau l’instruction.
Invalider le cache
Le cache est très utile, mais il n’est pas toujours utilisé. Si Docker détecte une modification dans une instruction ou dans son contexte, le cache de cette couche et de toutes les couches suivantes est invalidé.
Cela signifie que Docker reconstruira l’image à partir de ce point, en ignorant toutes les couches mises en cache qui se trouvent en dessous.
Ordonner intelligemment les instructions
Pour maximiser les utilisations du cache, organisez les instructions de votre Dockerfile de celles qui ont le moins de chances de changer à celles qui ont le plus de chances de changer.
- Dépendances stables en premier : installez les paquets système ou les dépendances de l’application qui changent peu souvent.
- Code de l’application en dernier : copiez le code source de votre application, qui change fréquemment, aussi tard que possible.
Ordonner les instructions pour profiter du cache
Examinons un exemple. En plaçant la commande RUN pip install (qui change généralement moins souvent) avant COPY . . (qui change à chaque mise à jour du code), Docker peut réutiliser la couche des dépendances.
Imaginons que requirements.txt contienne flask et gunicorn, et que app.py soit votre application principale.
Dockerfile :
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
CMD ["python", "app.py"]Si seul app.py change, Docker ne reconstruit que les dernières couches COPY et CMD, ce qui permet de gagner du temps !
Copier sélectivement avec .dockerignore
Lorsque vous utilisez COPY . ., Docker vérifie les changements de chaque fichier du contexte de construction. Même de petits fichiers sans importance (comme les dossiers .git ou les données de test locales) peuvent invalider le cache.
Utilisez un fichier .dockerignore pour exclure les fichiers et répertoires inutiles de votre contexte de construction. Vous éviterez ainsi qu’ils ne déclenchent l’invalidation du cache.
.dockerignore en pratique
Placez un fichier nommé .dockerignore à la racine de votre contexte de construction (à côté de votre Dockerfile).
Exemple de fichier .dockerignore :
.git
.venv
__pycache__
*.log
node_modulesDésormais, lorsque vous utilisez COPY . ., Docker ignore ces fichiers, ce qui permet d’obtenir des utilisations du cache plus fiables !
Quand ignorer le cache
Parfois, vous voulez vous assurer que tout est construit de nouveau, en ignorant complètement le cache. Cela peut être utile pour le débogage ou pour vous assurer de disposer des toutes dernières versions des dépendances.
Vous pouvez forcer Docker à reconstruire l’image sans utiliser le cache en ajoutant l’option --no-cache à votre commande de construction :
docker build --no-cache -t my-app:latest .Vérifier l’optimisation du cache
Vous construisez une image Docker pour une application Node.js. Votre Dockerfile se présente actuellement ainsi :
FROM node:16-alpine
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]Quelle modification optimiserait le mieux ce Dockerfile pour la mise en cache de la construction ?
Récapitulatif : maîtrisez le cache !
Excellent travail ! Vous avez appris à tirer parti du cache de construction de Docker pour accélérer la création d’images.
- Docker construit les images couche par couche et réutilise les couches mises en cache lorsque c’est possible.
- Les modifications apportées à une instruction ou à son contexte invalident le cache à partir de ce point.
- Optimisez le processus en classant les instructions de celles qui ont le moins de chances de changer à celles qui en ont le plus.
- Utilisez
.dockerignorepour exclure les fichiers sans importance du contexte de construction. - Utilisez
--no-cachepour forcer une nouvelle construction lorsque cela est nécessaire.
Une mise en cache efficace accélère les cycles de développement et rend les déploiements plus agiles !
Questions Fréquemment Posées
La leçon « Tirer parti de la mise en cache des constructions » est-elle gratuite ?
Oui — le texte complet de « Tirer parti de la mise en cache des constructions » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Docker & DevOps Fundamentals, passe à CoddyKit PRO. Le cours Docker & DevOps Fundamentals comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Tirer parti de la mise en cache des constructions » ?
Optimisez les temps de construction Docker en comprenant et en utilisant efficacement le mécanisme de cache de construction de Docker. Tu pratiques Docker & DevOps Fundamentals avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Docker & DevOps Fundamentals ?
Aucune expérience préalable n'est requise. Docker & DevOps Fundamentals sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Tirer parti de la mise en cache des constructions » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Docker & DevOps Fundamentals ?
Oui. Chaque leçon Docker & DevOps Fundamentals inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Constructions en plusieurs étapes pour gagner en efficacité
- Tirer parti de la mise en cache des constructions
- Bonnes pratiques de sécurité des Dockerfiles
- Réduire la taille des images avec des bases Slim et Distroless