L’article XDA sur l’épinglage des images Docker à latest est une leçon que chaque opérateur d’homelab apprend de la manière difficile : latest se déplace sans demander, et un seul pull mal exécuté peut casser une pile que vous ne pouvez pas restaurer. Les outils ci-dessous vous donnent une voie médiane : notifier les nouvelles images, épingler aux vrais tags, et mettre à jour selon un calendrier que vous contrôlez. Sept choix pour Docker, Podman, Compose, Swarm et Kubernetes.
Ce qu’il faut rechercher dans une mise à jour automatique de conteneur
Le bon choix dépend de l’échelle, pas de la préférence. Pesez :
- Notifier vs auto-appliquer. Les outils de notification uniquement vous permettent de décider quand mettre à jour. Les outils auto-appliqués se mettent à jour selon leur propre calendrier.
- Politique de tags. Tirages de
latestgénéralisés, épinglage conscient du semver, ou augmentations basées sur les PR à la manière de Renovate. - Support de la restauration. Un outil qui conserve l’image précédente vaut le disque supplémentaire.
- Cibles de notification. Slack, Discord, email, Gotify, ntfy, ou rien.
- Taille de la flotte. Un hôte va bien avec Watchtower. Cent hôtes veulent Renovate ou un opérateur Kubernetes.
Comparaison rapide
| App | Meilleur pour | Runtime | Gratuit | Notifications | Auto-apply |
|---|---|---|---|---|---|
| Watchtower | Hôtes homelab solo | Docker | Oui | Oui | Oui |
| Diun | Notification uniquement, pas d’auto-apply | Docker, Podman, Kubernetes | Oui | Oui | Non |
| Ouroboros | Alternative ancienne de Watchtower | Docker | Oui | Oui | Oui |
| Podman auto-update | Podman systemd natif | Podman | Oui | Non | Oui |
| Shepherd | Services Docker Swarm | Docker Swarm | Oui | Non | Oui |
| Renovate | Compose ou Kubernetes gérés par GitOps | Tous (via git) | Oui (open source) | Oui | Via PRs |
| Portainer | Mises à jour manuelles avec GUI | Docker, Swarm, Kubernetes | Free CE | Oui | Oui |
1. Watchtower, le meilleur défaut pour un seul hôte Docker
Watchtower est un conteneur Docker qui regarde vos autres conteneurs Docker. Lorsqu’un nouveau tag d’image est poussé dans le registre, Watchtower le tire, recréé le conteneur avec la même configuration, et nettoie l’ancienne image. Ajoutez un label à un conteneur pour l’activer ou le désactiver.
C’est le starter par défaut pour un hôte Docker domestique car il faut un bloc Docker Compose de deux lignes pour être configuré et fait exactement une chose bien.
Où il court : Watchtower suppose latest ou un tag mutable. Si vous épinglez à 1.2.3, il ne passera pas à 1.2.4 de lui-même. Pas de rollback. Le projet en amont s’est ralenti ; les forks (basés sur WOL, patchés de sécurité) sont courants.
Prix : Gratuit et open source (Apache 2.0).
Plateformes : N’importe quel hôte exécutant Docker (Windows, macOS, Linux, ARM).
Télécharger : containrrr.dev/watchtower · GitHub
Conclusion : Le bon premier choix pour un hôte Docker personnel, avec la mise en garde que vous ne devriez pas le pointer vers des services de production que vous ne pouvez pas vous permettre de casser.
2. Diun, le meilleur choix de notification uniquement
Diun regarde les tags d’image dans votre registre et envoie une notification lorsqu’un nouveau digest est disponible. Il ne tire jamais, ne recrée jamais, ne touche jamais vos conteneurs. Vous recevez un ping Discord ou une notification Gotify, et vous mettez à jour selon vos termes.
La raison de le choisir est le contrôle. L’auto-application de Watchtower se déplace plus vite que ce que la plupart des gens veulent ; Diun garde les humains dans la boucle.
Où il court : Vous devez toujours exécuter docker compose pull && docker compose up -d manuellement.
Prix : Gratuit et open source (MIT).
Plateformes : N’importe quel hôte avec Docker, Podman ou un cluster Kubernetes.
Télécharger : crazymax.dev/diun · GitHub
Conclusion : Le bon choix lorsque vous voulez connaître les mises à jour mais ne pas les appliquer automatiquement.
3. Ouroboros, meilleure alternative ancienne de Watchtower
Ouroboros est une alternative basée sur Python de Watchtower qui précède Watchtower et fait le même travail de base : tirer, recréer, élaguer. Certains opérateurs d’homelab restent sur Ouroboros car sa configuration est plus proche de ce qu’ils ont écrit il y a des années.
Le développement est lent mais stable. Les nouveaux utilisateurs doivent commencer par Watchtower ou Diun.
Où il court : Rythme de sortie plus lent que les alternatives. L’ensemble des fonctionnalités est essentiellement gelé.
Prix : Gratuit et open source (MIT).
Plateformes : N’importe quel hôte exécutant Docker.
Télécharger : GitHub
Conclusion : Bien si vous l’exécutez déjà. Sinon Watchtower ou Diun.
4. Podman auto-update, meilleure option Podman native
Podman est livré avec podman auto-update, une sous-commande qui lit un label sur chaque conteneur et tire des images fraîches sur une minuterie systemd. Pas de conteneur sidecar, pas d’outil tiers. Il s’intègre avec Quadlet (le générateur Podman pour systemd) pour les définitions de service déclaratives.
La raison de le choisir est que si vous exécutez Podman sans root sur RHEL, Fedora ou un Debian moderne, le chemin de mise à jour automatique existe déjà dans le système d’exploitation.
Où il court : Podman uniquement. Pas de notification intégrée.
Prix : Gratuit et open source (Apache 2.0).
Plateformes : Linux (Podman).
Télécharger : Documentation sur docs.podman.io
Conclusion : Le choix natif sur les hôtes Podman. Aucun nouvel outil requis.
5. Shepherd, meilleur pour Docker Swarm
Shepherd regarde les services Docker Swarm (pas les conteneurs autonomes) et roule les services lorsque leur tag d’image a un nouveau digest. Il respecte la stratégie de mise à jour progressive de Swarm, ce qui signifie qu’il fonctionne bien avec les health-checks et le parallélisme des mises à jour.
Très peu de gens exécutent toujours Swarm à grande échelle, mais pour ceux qui le font, Shepherd est le metteur à jour automatique construit pour le modèle de Swarm.
Où il court : Swarm uniquement. Pas d’utilisation en dehors d’un cluster Swarm.
Prix : Gratuit et open source (MIT).
Plateformes : Docker Swarm (hôtes Linux).
Télécharger : GitHub
Conclusion : Le bon choix à l’intérieur d’un Docker Swarm.
6. Renovate, meilleure approche GitOps
Renovate est un bot qui ouvre des pull requests dans votre repo git lorsqu’un tag d’image a une mise à jour. Il fonctionne sur les fichiers Compose, les manifests Kubernetes, les charts Helm, les Dockerfiles, GitHub Actions et des dizaines d’autres cibles. Le PR inclut les notes de version, les liens du changelog et une vérification que le nouveau tag existe réellement.
La raison de le choisir est que les mises à jour deviennent des changements de code. Vous les examinez, les fusionnez et CI applique la mise à jour. Le rollback est un git revert. C’est le modèle dans lequel la plupart des équipes de production se retrouvent.
Où il court : Nécessite un pipeline de déploiement basé sur git. Pas approprié pour un homelab qui n’utilise pas CI.
Prix : Gratuit auto-hébergé (Apache 2.0). Le service gérée (Mend) est aussi gratuit pour l’open source et les petites équipes.
Plateformes : GitHub, GitLab, Bitbucket, git auto-hébergé.
Télécharger : renovatebot.com · GitHub
Conclusion : Le bon choix lorsque votre infrastructure est définie dans git.
7. Portainer, meilleures mises à jour manuelles basées sur GUI
Portainer est un tableau de bord de gestion Docker/Swarm/Kubernetes. Il affiche tous les conteneurs et toutes les images, signale quand une nouvelle image est disponible, et vous permet de recréer le conteneur avec le nouveau pull en deux clics. Community Edition est gratuite ; Business Edition ajoute RBAC, le scan d’images et plus.
La raison de le choisir est que certaines mises à jour sont des décisions ponctuelles que vous voulez prendre dans une UI plutôt qu’un fichier de configuration.
Où il court : Pas entièrement automatisé. Vous êtes le metteur à jour automatique ; Portainer vous donne juste le bouton.
Prix : Community Edition gratuite. Business Edition payante.
Plateformes : Docker, Swarm, Kubernetes (auto-hébergé).
Télécharger : portainer.io · GitHub
Conclusion : Le choix pour les flux de travail de mise à jour par clic et les flottes mixtes.
Comment choisir
- Hôte Docker unique, homelab : Watchtower.
- Idem, mais vous voulez un heads-up pas auto-apply : Diun.
- Vous exécutez Podman :
podman auto-update. - Docker Swarm : Shepherd.
- Kubernetes ou Compose dans git : Renovate.
- Préférez un tableau de bord : Portainer.
FAQ
Est-ce sûr d’exécuter Watchtower contre la production ?
Pas sans une politique de tags minutieuse. Pointez-le sur :latest et il peut casser votre pile sur n’importe quelle erreur en amont. Pointez-le sur des tags épinglés semver et ajoutez un rollback basé sur les health-checks. Mieux : utilisez Renovate pour tout ce que vous ne pouvez pas vous permettre de casser.
Comment puis-je épingler à une vraie version au lieu de latest ?
Remplacez image: nginx par image: nginx:1.27.2 dans votre fichier Compose. Renovate ouvre un PR lorsque 1.27.3 est livré. Watchtower et Diun remarquent tous deux les nouveaux digests même pour les tags épinglés si le tag lui-même est mis à jour en amont.
Ces outils fonctionnent-ils avec les registres privés ?
Oui. Watchtower, Diun et Renovate supportent tous les credentials docker pour les registres privés (ECR, GCR, Harbor, auto-hébergé).
Puis-je annuler une mauvaise mise à jour ?
Watchtower et Ouroboros ne gardent pas la balise d’image précédente ; vous avez besoin de l’ID d’image précédent ou de votre propre schéma d’étiquetage. L’UI de Portainer rend le rollback plus facile. Le rollback de Renovate est git revert.
À quelle fréquence les conteneurs doivent-ils auto-mettre à jour ?
Pour un homelab, une fois par jour à une heure tranquille c’est bien. Pour la production, préférez notification uniquement ou basé sur PR (Renovate) pour que les mises à jour se fassent via la révision et CI, pas un daemon en arrière-plan.