Cours
La mise à jour de Docker peut revêtir trois significations distinctes. Il se peut que vous deviez mettre à jour Docker Engine, Docker Desktop ou les images sur lesquelles vos conteneurs s'exécutent.
La plupart des développeurs ne savent pas exactement ce qu'ils doivent mettre à jour, alors soit ils mettent tout à jour (et risquent de perturber leur configuration), soit ils évitent complètement les mises à jour (et s'exposent à des vulnérabilités). Pour mettre à jour Docker en toute sécurité, il est nécessaire de connaître précisément ce que vous mettez à jour et de suivre les étapes appropriées pour chaque scénario.
Dans cet article, je vais vous présenter les méthodes de mise à jour les plus sûres et les plus courantes, sans laisser place au doute. Vous découvrirez ce que chaque type de mise à jour Docker accomplit réellement, quand vous en avez besoin et comment exécuter les mises à jour étape par étape sans endommager vos conteneurs existants.
Si vous débutez avec Docker, nous vous recommandons de commencer par l'introduction à Docker afin d'acquérir les bases nécessaires avant de vous lancer dans les mises à jour etla maintenance.
Que signifie réellement « mettre à jour Docker » ?
Comme je l'ai mentionné, le terme « mise à jour de Docker » peut désigner trois choses différentes, et les confondre peut entraîner la défaillance accidentelle d'un système qui fonctionne. Vous pouvez mettre à jour le moteur Docker (le logiciel central qui exécute les conteneurs), Docker Desktop (l'application GUI) ou les images de conteneur utilisées par vos applications.
Chaque type de mise à jour affecte votre système de manière différente. Permettez-moi de vous expliquer.
Mise à jour du moteur Docker par rapport à la mise à jour des images
Le moteur Docker est le moteur d'exécution qui gère vos conteneurs.
Lorsque vous mettez à jour Docker Engine, vous effectuez une mise à niveau du logiciel qui crée, exécute et gère les conteneurs sur votre système. Il s'agit d'une modification au niveau du système qui affecte le fonctionnement de Docker. Vous installez de nouveaux binaires, mettez à jour le démon et modifiez potentiellement la manière dont Docker interagit avec votre système d'exploitation.
Les images de conteneur sont les plans à partir desquels vos conteneurs fonctionnent.
La mise à jour d'une image implique le téléchargement d'une version plus récente de l'application contenue dans ce conteneur. Par exemple, si vous utilisez PostgreSQL 14 dans un conteneur et que vous souhaitez passer à PostgreSQL 18, la mise à jour de l'image implique de récupérer cette nouvelle version. Le moteur Docker lui-même ne change pas, seuls les logiciels à l'intérieur de vos conteneurs sont concernés.
Il est essentiel de garder à l'esprit que la mise à jour de Docker Engine peut affecter l'ensemble de vos conteneurs, tandis que la mise à jour d'une image n'affecte que les conteneurs créés à partir de cette image spécifique.
Que se passe-t-il avec les conteneurs en cours d'exécution ?
Les mises à jour du moteur Docker ne redémarrent pas automatiquement vos conteneurs.
Lorsque vous mettez à jour Docker Engine sous Linux, le démon Docker redémarre, mais vos conteneurs continuent de fonctionner dans la plupart des configurations modernes. Docker utilise une fonctionnalité appelée« live restore » (restauration en direct) qui maintient les conteneurs actifs pendant les mises à jour du démon. Vous pouvez vérifier si cette fonctionnalité est activée en exécutant docker info et en recherchant « Live Restore Enabled: true ».
Docker Desktop est un cas à part.
Sous macOS et Windows, la mise à jour de Docker Desktop interrompra tous les conteneurs en cours d'exécution. La machine virtuelle Docker redémarre entièrement pendant le processus de mise à jour. Vos conteneurs ne démarreront pas automatiquement une fois la mise à jour terminée. Il vous sera nécessaire de les démarrer manuellement ou d'utiliser des stratégies de redémarrage.
Les mises à jour d'images nécessitent la recréation des conteneurs.
Le fait de récupérer une nouvelle version de l'image n'affecte en aucun cas les conteneurs en cours d'exécution. Si vous souhaitez utiliser l'image mise à jour, il est nécessaire d'arrêter l'ancien conteneur, de le supprimer, puis d'en créer un nouveau à partir de l'image mise à jour.
C'est pourquoi il est important de comprendre la différence entre les mises à jour du moteur et les mises à jour d'image. L'un peut nécessiter une planification des temps d'arrêt, l'autre non.
Pourquoi il est important de mettre à jour Docker
Les versions obsolètes de Docker vous exposent à des vulnérabilités de sécurité et à des problèmes de compatibilité connus. Si cela ne suffit pas à vous convaincre, veuillez continuer votre lecture.
Sécurité et stabilité
Chaque version de Docker corrige les failles de sécurité identifiées dans les versions précédentes.
Utiliser une ancienne version vous rend vulnérable aux exploits dont les pirates ont déjà connaissance. Les chercheurs en sécurité et la communauté Docker identifient et signalent activement ces problèmes, et la société à l'origine de Docker les corrige dans les nouvelles versions. Si vous ne procédez pas à la mise à jour, vous laissez la porte ouverte.
De plus, la stabilité s'améliore à chaque nouvelle version. Les corrections de bogues dans les versions plus récentes traitent des problèmes qui affectent la plupart des utilisateurs et qui pourraient entraîner la défaillance de vos conteneurs en production.
Il n'est pas nécessaire de procéder à une mise à jour à chaque fois qu'une nouvelle version est disponible, mais ignorer les mises à jour pendant plusieurs mois signifie que vous passez à côté de nombreuses corrections de sécurité et améliorations de stabilité.
Compatibilité avec les systèmes modernes
Les systèmes d'exploitation et les outils de développement évoluent, que vous mettiez à jour Docker ou non.
Votre système d'exploitation reçoit des mises à jour, vos outils CI/CD bénéficient de nouvelles fonctionnalités et les plateformes d'orchestration telles que Kubernetes cesseront à terme de prendre en charge les anciennes versions de Docker. Si vous utilisez une version de Docker datant de deux ans, vous commencerez à recevoir des avertissements de compatibilité, puis des erreurs, et enfin, le système cessera complètement de fonctionner.
Les images de conteneurs modernes nécessitent également les dernières fonctionnalités de Docker. Les créateurs d'images utilisent des constructions en plusieurs étapes, des optimisations BuildKit et des pilotes de stockage plus récents qui ne sont pas pris en charge par les anciennes versions de Docker. Il est possible que vous téléchargiez une image qui ne fonctionnera pas sur votre configuration obsolète.
Si vous envisagez d'utiliser des outils d'orchestration avec Docker, notre Introduction à Kubernetes est un excellent cours pour vous aider à vous lancer.
Comment vérifier la version actuelle de Docker
Avant de procéder à la mise à jour, il est recommandé de vérifier la version actuelle.
Vérification de la version installée
Veuillez exécuter cette commande pour afficher la version actuelle de Docker :
docker --version
Ceci vous indique la version de Docker Engine installée sur votre système :

Le numéro de version suit le système de versionnement sémantique : major.minor.patch. Dans cet exemple, 29 correspond à la version majeure, 1 à la version mineure et 3 à la version correctif.
Pour obtenir plus de détails sur votre configuration Docker, veuillez exécuter la commande suivante :
docker info

Il fournit une grande quantité d'informations sur votre installation Docker, notamment la version du serveur, le pilote de stockage, la version du noyau et si des fonctionnalités telles que la restauration en direct sont activées. Vous n'avez pas besoin de toutes ces informations pour une mise à jour de base, mais elles peuvent s'avérer utiles pour le dépannage.
Déterminer si une mise à jour est nécessaire
Les mises à jour mineures sont généralement sans risque et doivent être appliquées régulièrement.
Si vous utilisez Docker 29.1.0 et que la version 29.1.3 est disponible, il s'agit d'une mise à jour mineure comprenant des corrections de bogues et des correctifs de sécurité. Ces mises à jour causent rarement des dysfonctionnements, et il est recommandé de les appliquer lorsque cela vous convient.
Les mises à jour majeures nécessitent une plus grande prudence. Le passage de Docker 24 à Docker 29 peut entraîner des modifications importantes, la suppression de fonctionnalités ou de nouvelles exigences. Avant de procéder à une mise à jour majeure, veuillez consulter les notes de mise à jour Docker pour la version que vous souhaitez installer afin de prendre connaissance des modifications apportées.
Vous pouvez trouver la dernière version de Docker sur la documentation officielle de Docker ou sur la page des versions GitHub. Veuillez comparer cela avec ce que vous montre docker –version pour évaluer votre retard.
Comment mettre à jour Docker Engine
Le processus de mise à jour dépend du système d'exploitation que vous utilisez : Docker Engine sous Linux ou Docker Desktop sous macOS/Windows.
Mise à jour de Docker sous Linux
Linux utilise le gestionnaire de paquets de votre système pour mettre à jour Docker Engine.
Les commandes exactes varient selon la distribution, mais le processus est identique :
- Veuillez mettre à jour votre liste de colis.
- Mettre à niveau Docker
Voici comment cela fonctionne sur les systèmes Ubuntu et Debian :
sudo apt update
sudo apt upgrade docker-ce docker-ce-cli containerd.io
Pour les systèmes basés sur Red Hat tels que CentOS ou Fedora, veuillez exécuter la commande suivante :
sudo yum update docker-ce docker-ce-cli containerd.io
Le démon Docker redémarre automatiquement pendant la mise à jour.
Si la restauration en direct est activée (veuillez vérifier sur docker info), vos conteneurs en cours d'exécution continueront de fonctionner. Dans le cas contraire, ils s'arrêteront et vous devrez les démarrer manuellement.
Une fois la mise à jour terminée, vous pouvez vérifier la nouvelle version :
docker --version
Si vous avez installé Docker à l'aide du script pratique plutôt que des référentiels de paquets, il sera nécessaire de télécharger et d'exécuter à nouveau le script pour effectuer la mise à jour.
Mise à jour de Docker Desktop sur macOS et Windows
Docker Desktop gère les mises à jour différemment de Docker Engine sous Linux.
La mise à jour automatique est activée par défaut. Docker Desktop vérifie les mises à jour lors de son démarrage et affiche une notification lorsqu'une nouvelle version est disponible. Veuillez cliquer sur la notification, et Docker Desktop téléchargera et installera la mise à jour pour vous.
Si vous préférez effectuer les mises à jour manuellement, veuillez ouvrir les paramètres de Docker Desktop et rechercher l'option « Vérifier les mises à jour ». Vous pouvez désactiver les mises à jour automatiques ici et vérifier manuellement quand vous le souhaitez.

Il est également possible de mettre à jour Docker manuellement.
Veuillez télécharger le dernier programme d'installation de Docker Desktop depuis le site Web de Docker et l'exécuter. Le programme d'installation détectera votre installation existante et la mettra à niveau sans supprimer vos images ou vos conteneurs.
Veuillez noter que Docker Desktop arrêtera tous les conteneurs pendant la mise à jour. La machine virtuelle Docker redémarre entièrement, veuillez donc prévoir quelques minutes d'indisponibilité. Vos conteneurs ne redémarreront pas automatiquement, sauf si vous les avez configurés avec des politiques de redémarrage telles que --restart always.
Après la mise à jour, veuillez ouvrir Docker Desktop et attendre qu'il démarre complètement avant d'exécuter la commande ` docker –version ` pour confirmer la nouvelle version.
Gérer plusieurs conteneurs individuellement n'est pas une tâche dont on peut se vanter. Veuillez consulter notre guide Docker Compose pour en savoir plus sur les constructions multi-conteneurs.
Comment vérifier la mise à jour de Docker
Docker devrait maintenant être mis à jour, mais vérifions si c'est bien le cas.
Vérification de la version installée
Veuillez d'abord vérifier le numéro de version :
docker --version
La sortie devrait afficher la version cible. Si l'ancienne version s'affiche toujours, cela signifie que la mise à jour n'a pas été effectuée correctement ou que vous devez redémarrer votre terminal pour récupérer les nouveaux binaires.
La version est inchangée sur mon ordinateur, mais cela est uniquement dû au fait que j'avais déjà la dernière version.
La prochaine étape consiste à vérifier l'état du démon Docker :
docker info
Si l'opération échoue avec le message « Impossible de se connecter au démon Docker », cela signifie que le démon n'est pas en cours d'exécution. Sous Linux, veuillez le redémarrer à l'aide de la commande suivante :
sudo systemctl restart docker
Sur macOS et Windows, veuillez ouvrir Docker Desktop et patienter jusqu'à ce qu'il démarre.
Découvrez les commandes essentielles pour le travail quotidien avec les conteneurs dans notre récent article présentant les 18 commandes Docker les plus importantes.
Exécution d'un conteneur de test
Pour vérifier que tout fonctionne correctement après la mise à jour, veuillez essayer de récupérer et d'exécuter un conteneur simple :
docker run hello-world
Cette commande télécharge la petite image hello-world et l'exécute. Un message s'affichera pour indiquer que Docker fonctionne correctement :

Comment mettre à jour les images Docker après une mise à jour du moteur
La mise à jour de Docker Engine ne met pas à jour vos images de conteneur. Vous devez les traiter séparément.
Téléchargement des versions les plus récentes des images
Vous pouvez exécuter la commande docker pull pour obtenir la dernière version d'une image :
docker pull postgres
Cela permet de récupérer la dernière version de l'image PostgreSQL avec la balise latest. Cependant, cela ne signifie pas toujours ce que vous pensez - il s'agit simplement d'une balise que les gestionnaires d'images peuvent associer à n'importe quelle version de leur choix.
Il est toujours recommandé d'être explicite avec les balises afin d'éviter toute surprise :
docker pull postgres:18

Cela permet de télécharger spécifiquement la version 18 de PostgreSQL. Si la version 18.1 est disponible, exécuter à nouveau cette commande permettra de récupérer l'image 18.1 mise à jour tout en restant dans la série de versions 18.
Pour les autres images, veuillez d'abord vérifier leurs versions actuelles à l'aide de la commande « docker images ». Veuillez ensuite télécharger les versions les plus récentes si nécessaire. Vos conteneurs existants continueront d'utiliser l'ancienne image jusqu'à ce que vous les recréiez avec la nouvelle.
Reconstruction d'images personnalisées
Si vous créez vos propres images à l'aide de fichiers Dockerfile, il est nécessaire de les recréer après avoir récupéré les mises à jour de l'image de base.
Supposons que votre fichier Dockerfile commence par FROM python:3.14. Même si vous téléchargez la dernière image python:3.14, votre image personnalisée continuera d'utiliser les anciennes couches mises en cache. Veuillez le reconstruire pour récupérer les mises à jour :
docker build --no-cache -t myapp:latest .
Cette opération ignore toutes les couches mises en cache et reconstruit tout à partir de zéro. Cela prend plus de temps, mais garantit que vous utilisez les images de base et les dépendances les plus récentes.
Après la reconstruction, veuillez arrêter vos anciens conteneurs et en démarrer de nouveaux avec l'image mise à jour. Les mises à jour ne s'appliquent pas automatiquement aux conteneurs en cours d'exécution.
Souhaitez-vous libérer de l'espace disque après la mise à jour ? Notre tutoriel sur Docker Prune vous montre comment nettoyer en toute sécurité les images et les conteneurs inutilisés.
Problèmes courants liés à la mise à jour de Docker
Les mises à jour de Docker échouent de manière prévisible, et la plupart des problèmes peuvent être résolus rapidement. Permettez-moi de vous présenter quelques cas que j'ai personnellement rencontrés.
Erreurs d'autorisation, de service et d'installation
Les erreurs « Permission refusée » indiquent que votre utilisateur ne peut pas accéder au socket Docker.
Sous Linux, veuillez ajouter votre utilisateur au groupe docker :
sudo usermod -aG docker $USER
Veuillez vous déconnecter puis vous reconnecter pour que la modification soit prise en compte. Après cela, vous ne devriez plus avoir besoin d'utiliser sudo pour les commandes Docker.
Les erreurs « Impossible de se connecter au démon Docker » indiquent que Docker n'est pas en cours d'exécution.
Veuillez vérifier l'état du service :
sudo systemctl status docker
Si le processus est arrêté ou a échoué, veuillez le redémarrer :
sudo systemctl start docker
Si le programme ne démarre pas, veuillez vérifier les journaux à l'aide de la commande « journalctl -u docker » afin d'identifier la cause du problème.
Sur macOS et Windows, veuillez simplement démarrer l'application Docker Desktop.
Des conflits de paquets peuvent survenir lors de l'installation surviennent lorsque d'anciens paquets Docker interfèrent avec les nouveaux.
Veuillez exécuter cette commande pour supprimer les anciens paquets Docker avant d'installer la version mise à jour :
sudo apt remove docker docker-engine docker.io containerd runc
Veuillez ensuite réinstaller Docker en suivant les instructions d'installation officielles pour votre distribution.
Rétrograder ou dégrader Docker
Si la mise à jour perturbe votre configuration, vous pouvez revenir à une version antérieure.
Sous Linux, veuillez rechercher les versions disponibles dans votre gestionnaire de paquets :
apt list -a docker-ce
Veuillez installer une version antérieure spécifique :
sudo apt install <specific-version>
Veuillez remplacer la balise par la version dont vous avez besoin. Vos conteneurs et images restent intacts pendant la rétrogradation.
Pour macOS et Windows, la restauration est plus simple. Veuillez télécharger l'ancien programme d'installation à partir des archives de Docker et l'exécuter. Le programme d'installation remplace la version actuelle par l'ancienne sans modifier vos conteneurs ou vos images.
Meilleures pratiques pour la mise à jour de Docker
Le conseil le plus judicieux est de veiller à mettre à jour Docker régulièrement. Si vous ne l'avez pas fait depuis plusieurs années, veuillez consulter les pages de publication pour identifier les modifications importantes.
Maintenir Docker à jour en toute sécurité
Veuillez programmer un rappel pour vérifier les mises à jour de Docker afin d'éviter d'attendre que des problèmes surviennent.
Vérifiez les mises à jour tous les mois, non pas parce que vous devez les installer toutes, mais parce qu'il est important de savoir ce qui est disponible. Et vous avez besoin de quelque chose pour vous le rappeler. Les correctifs de sécurité sont plus importants que les mises à jour de fonctionnalités, il est donc recommandé de leur accorder la priorité lorsqu'ils sont publiés.
Il est recommandé de documenter votre configuration actuelle avant de procéder à la mise à jour. Veuillez noter votre version de Docker, répertorier vos conteneurs en cours d'exécution à l'aide de la commande ` docker ps` et noter toute configuration personnalisée. Si quelque chose ne fonctionne plus, vous saurez précisément ce qui a été modifié.
Si vous utilisez Docker en production, veuillez d'abord tester les mises à jour sur une machine de développement. Veuillez créer un environnement similaire, mettre à jour Docker à cet endroit et vous assurer que vos conteneurs fonctionnent toujours correctement avant de modifier la production.
Quand automatiser les mises à jour
L'automatisation est pertinente pour les environnements de développement où les temps d'arrêt ne sont pas problématiques.
Il est possible de configurer Docker Desktop pour qu'il se mette à jour automatiquement ou de configurer des mises à jour sans surveillance sous Linux pour les correctifs de sécurité. Cette approche est particulièrement adaptée aux machines de développement locales, où un redémarrage ne perturbe pas les services critiques.
Veuillez ne pas automatiser les mises à jour en production sans mesures de sécurité adéquates.
Il est nécessaire de mettre en place des stratégies de surveillance, de restauration et de test avant d'appliquer des mises à jour aux systèmes qui exécutent des charges de travail réelles. Les mises à jour Docker peuvent causer des dysfonctionnements ; il est donc préférable qu'un humain supervise les systèmes de production.
Je préfère effectuer les mises à jour manuellement à l'aide de rappels mensuels, et je n'ai jamais rencontré de problèmes.
Conclusion
La mise à jour de Docker commence par la compréhension de ce que vous mettez réellement à jour.
Les mises à jour du moteur Docker, les mises à jour de Docker Desktop et les mises à jour d'images sont trois éléments distincts qui ont des répercussions différentes sur votre système. Déterminez celui dont vous avez besoin, suivez la procédure appropriée pour votre plateforme et procédez à des tests par la suite. C'est tout.
Veuillez programmer un rappel sur votre téléphone. Veuillez vérifier les mises à jour mensuellement, privilégier les correctifs de sécurité et documenter ce que vous utilisez avant d'effectuer des modifications. Les mises à jour ne devraient pas être une source de stress, mais plutôt une tâche de maintenance courante.
Dans les environnements de production, veuillez noter que vos conteneurs dépendent du bon fonctionnement de Docker. Traitez les mises à jour avec le même soin que vous accorderiez à tout autre changement critique de l'infrastructure : de manière réfléchie, en effectuant des tests et en prévoyant un plan de repli si les choses tournent mal.
Maintenant que vous savez comment mettre à jour Docker, la prochaine étape consiste à approfondir vos compétences en matière de conteneurs grâce à notre cours Docker intermédiaire. Vous apprendrez tout ce qu'il y a à savoir sur la mise en réseau, les images de conteneurs avancées et Docker Compose.
Questions fréquentes
Comment puis-je automatiser les mises à jour des conteneurs Docker à l'aide de Watchtower ?
Watchtower est un conteneur qui surveille vos conteneurs en cours d'exécution et les met automatiquement à jour lorsque de nouvelles versions d'images sont disponibles. Vous exécutez Watchtower en tant que conteneur avec accès au socket Docker. Il vérifie régulièrement les mises à jour d'images, récupère les nouvelles versions et redémarre vos conteneurs avec les images mises à jour. Cela fonctionne bien dans les environnements de développement, mais il est recommandé d'être prudent en production : les mises à jour automatisées peuvent causer des dysfonctionnements sans tests appropriés ni stratégies de restauration.
Quelles sont les meilleures pratiques pour configurer un registre Docker privé ?
Sécurisez votre registre privé à l'aide de certificats TLS et d'une authentification afin d'empêcher tout accès non autorisé. Veuillez utiliser des backends de stockage tels que S3 ou Azure Blob Storage pour bénéficier d'une évolutivité et d'une fiabilité accrues, plutôt que le stockage sur disque local. Veuillez mettre en œuvre la numérisation des images à la recherche de vulnérabilités et configurer le ramasse-miettes afin de supprimer les couches inutilisées et économiser de l'espace. Il est également recommandé de configurer des contrôles d'accès afin que les équipes puissent uniquement effectuer des opérations de push et de pull sur les référentiels qu'elles sont autorisées à utiliser.
En quoi un déploiement canary diffère-t-il d'un déploiement bleu-vert ?
Le déploiement bleu-vert consiste à exécuter deux environnements de production identiques : vous déployez la nouvelle version dans l'environnement inactif, vous la testez, puis vous transférez tout le trafic en une seule fois. Le déploiement Canary consiste à déployer progressivement la nouvelle version auprès d'un petit groupe d'utilisateurs dans un premier temps, à surveiller les problèmes éventuels, puis à augmenter progressivement le trafic vers la nouvelle version, tandis que l'ancienne version continue de traiter la plupart des demandes. Les déploiements canari permettent de détecter les problèmes avec un impact moindre sur les utilisateurs, tandis que les déploiements bleu-vert offrent une restauration instantanée en rétablissant les environnements précédents.
Quels sont les avantages de l'utilisation de builds multi-étapes dans Docker ?
Les constructions multi-étapes vous permettent d'utiliser plusieurs instructions FROM dans un seul fichier Dockerfile, ce qui signifie que vous pouvez compiler ou construire votre application en une seule étape avec tous les outils de construction, puis copier uniquement les artefacts finaux dans une image d'exécution minimale. Cela réduit considérablement la taille de l'image, car vous n'expédiez pas les dépendances de compilation, les compilateurs ou le code source en production. Vous bénéficiez également d'une compilation plus rapide grâce à une meilleure mise en cache des couches et à une séparation plus claire entre les environnements de compilation et d'exécution.
Comment puis-je surveiller efficacement les indicateurs de performance des conteneurs Docker ?
Veuillez utiliser docker stats pour obtenir des mesures en temps réel sur le CPU, la mémoire, le réseau et les E/S disque pour tous les conteneurs en cours d'exécution. Pour la surveillance de la production, des outils tels que Prometheus avec cAdvisor collectent des métriques détaillées sur les conteneurs et les stockent à des fins d'analyse et d'alerte. Docker fournit également des métriques via son API, que vous pouvez récupérer à l'aide de plateformes de surveillance. Configurez des alertes pour les utilisations élevées des ressources, les redémarrages de conteneurs et les échecs des contrôles d'intégrité afin de détecter les problèmes avant qu'ils n'affectent les utilisateurs.
