Mettre à jour ses containers Docker manuellement, c’est une tâche ingrate. Tu l’oublies, tu la repousses, et un beau jour tu te retrouves avec des images vieilles de 6 mois. Watchtower Docker règle le problème : c’est un container qui surveille tes autres containers en cours d’exécution et les met à jour automatiquement quand une nouvelle image est disponible sur le registry.
Je l’utilise sur mes 3 nœuds Proxmox depuis plusieurs mois. Résultat : je ne m’en occupe plus, et je reçois une notification Telegram à chaque mise à jour effectuée.
Comment fonctionne Watchtower Docker
Watchtower interroge le registry Docker à intervalles réguliers (par défaut toutes les 24 heures) pour chaque image utilisée par tes containers actifs. Si une nouvelle version est disponible, il pull l’image, recrée le container avec exactement les mêmes paramètres (volumes, ports, variables d’environnement), puis supprime l’ancienne image si CLEANUP=true.
C’est transparent pour les services : le downtime est minimal — quelques secondes le temps du redémarrage. Sur la plupart des containers de homelab, c’est imperceptible.
Installation
services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_SCHEDULE=0 0 4 * * *
- WATCHTOWER_NOTIFICATIONS=gotify
- WATCHTOWER_NOTIFICATION_GOTIFY_URL=https://gotify.mondomaine.fr
- WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN=mon-token
- TZ=Europe/Paris
Quelques paramètres importants :
WATCHTOWER_CLEANUP=true— supprime les vieilles images après mise à jour, évite d’accumuler des Go inutiles sur le disqueWATCHTOWER_SCHEDULE— syntaxe cron étendue (6 champs). Ici : 4h du matin tous les jours- Les notifications sont compatibles Slack, Telegram, Gotify, email, et une dizaine d’autres services
Containers à exclure
Certains containers ne doivent pas être mis à jour automatiquement — typiquement ceux avec des bases de données sensibles ou des configs non versionnées. Un label suffit pour les exclure :
labels:
- "com.centurylinklabs.watchtower.enable=false"
Je l’applique sur Home Assistant (les mises à jour HAOS se gèrent depuis l’interface HA), sur mes containers de base de données, et sur quelques services critiques où je préfère maîtriser la version manuellement. La règle : si une mise à jour automatique peut casser quelque chose de difficile à réparer, on exclut.
Pour aller plus loin
Watchtower s’intègre bien avec Dockge pour la gestion visuelle de tes stacks. Pour avoir une vue d’ensemble de ton infrastructure, consulte aussi mon setup homelab 2026. La documentation complète de Watchtower est disponible sur containrrr.dev/watchtower.
Mon setup : Watchtower le samedi matin
Une astuce que j’ai adoptée : je lance Watchtower uniquement le samedi matin avec WATCHTOWER_SCHEDULE=0 0 8 * * 6. La logique est simple — les développeurs publient leurs releases en début de semaine, et les patches correctifs suivent dans les jours d’après. Le samedi, les images ont eu le temps de se stabiliser. Je reçois la notification Telegram vers 9h, j’ai toute la matinée pour debugger si besoin. Depuis que j’ai adopté ce rythme, je n’ai jamais cassé un seul service. Et pour être tranquille, un backup automatique tourne le vendredi soir — ceinture et bretelles.
Active le mode **monitoring only** en ajoutant `WATCHTOWER_MONITOR_ONLY=true` pendant une semaine avant d’activer les mises à jour auto. Tu reçois les notifications sans que rien ne change — ça permet de voir ce qui aurait été mis à jour et de vérifier qu’aucun container critique n’est dans la liste.
👉 Pour aller plus loin : gérer ses stacks avec Dockge, consulter les logs en temps réel avec Dozzle et surveiller la disponibilité avec Uptime Kuma.








