Watchtower sur Raspberry Pi : mettre à jour ses conteneurs Docker sans tout casser

Serveur maison Raspberry Pi avec conteneurs Docker à maintenir à jour

Un Raspberry Pi qui fait tourner Pi-hole, Home Assistant, Jellyfin, MQTT ou un petit tableau de bord Docker devient vite indispensable. Le problème arrive ensuite : comment garder les conteneurs à jour sans passer ses soirées en SSH ? Watchtower sur Raspberry Pi peut automatiser une partie du travail, à condition de le configurer prudemment.

3 points clés

  • Watchtower surveille les nouvelles images Docker et peut recréer les conteneurs automatiquement.
  • Sur Raspberry Pi, il faut éviter le mode “tout mettre à jour sans réfléchir”.
  • La meilleure approche consiste à l’utiliser par labels, avec notifications et sauvegardes.

Verdict rapide

Watchtower est très pratique pour un homelab Raspberry Pi, surtout avec des services simples. Pour les conteneurs critiques comme Home Assistant, Nextcloud ou une base de données, il vaut mieux activer les mises à jour au cas par cas et conserver une procédure de retour arrière.

C’est quoi Watchtower, et pour qui ?

Watchtower est un conteneur Docker qui vérifie si les images utilisées par vos conteneurs ont une version plus récente. Quand une mise à jour est disponible, il peut télécharger l’image, arrêter l’ancien conteneur, le recréer avec les mêmes paramètres, puis supprimer l’image obsolète.

Il s’adresse aux utilisateurs de Raspberry Pi qui hébergent plusieurs services avec Docker Compose : serveur DNS, domotique, monitoring, sauvegarde, serveur média, reverse proxy ou petits outils maison. L’objectif n’est pas de remplacer une vraie stratégie d’administration, mais de réduire la maintenance répétitive.

Prérequis sur Raspberry Pi

  • Un Raspberry Pi 3, 4 ou 5 sous Raspberry Pi OS ou Debian.
  • Docker et Docker Compose déjà installés.
  • Un accès SSH avec un utilisateur autorisé à lancer Docker.
  • Des volumes persistants pour vos services importants.
  • Une sauvegarde récente avant d’automatiser les mises à jour.

Installation simple avec Docker Compose

Créez un dossier dédié :

mkdir -p ~/docker/watchtower
cd ~/docker/watchtower

Ajoutez un fichier docker-compose.yml minimal :

services:
  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --schedule "0 0 4 * * *" --cleanup

Ce réglage lance une vérification chaque jour à 4 h du matin et nettoie les anciennes images. Démarrez ensuite le service :

docker compose up -d

La méthode recommandée : mise à jour par labels

Sur un Raspberry Pi de production maison, il est plus sûr de ne pas donner carte blanche à Watchtower. Le mode par labels permet de choisir explicitement quels conteneurs peuvent être mis à jour.

services:
  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --label-enable --schedule "0 0 4 * * *" --cleanup

Puis, sur un service que vous acceptez de mettre à jour automatiquement :

labels:
  - "com.centurylinklabs.watchtower.enable=true"

Commencez par des outils peu risqués : tableau de bord, monitoring, petits services stateless. Attendez avant d’activer les mises à jour automatiques sur les services qui stockent des données sensibles.

Notifications : ne pas mettre à jour dans le silence

Une mise à jour automatique sans notification est difficile à diagnostiquer. Watchtower peut envoyer des alertes via e-mail, Gotify, Slack, Teams ou d’autres canaux selon votre configuration. À défaut, consultez régulièrement les logs :

docker logs watchtower --tail=100

Tableau comparatif des stratégies

StratégieAvantageRisqueConseil
Tout automatiqueZéro maintenanceCasse silencieuse possibleÀ éviter sur services critiques
Par labelsContrôle précisDemande un peu de triMeilleur choix sur Raspberry Pi
Notifications seulementVous gardez la mainMises à jour manuellesIdéal pour débuter
Mise à jour manuelleTrès sûrMaintenance régulièrePour bases de données et NAS

Checklist avant d’activer Watchtower

  • Vérifier que chaque service utilise un volume persistant.
  • Sauvegarder les dossiers Docker importants.
  • Éviter les tags trop vagues si une application est sensible aux changements.
  • Tester la restauration d’un service avant de l’automatiser.
  • Activer les notifications ou surveiller les logs.
  • Utiliser --label-enable pour les conteneurs critiques.
  • Planifier les vérifications à une heure où une interruption courte est acceptable.

Points forts

  • Très léger pour un Raspberry Pi.
  • Installation rapide avec Docker Compose.
  • Réduit les images obsolètes et les failles connues.
  • Compatible avec une gestion fine par labels.
  • Pratique pour les petits services de homelab.

Limites à connaître

  • Une image récente peut introduire un bug ou un changement de configuration.
  • Watchtower ne remplace pas les sauvegardes.
  • Les conteneurs recréés peuvent provoquer une coupure courte.
  • Les applications avec base de données méritent souvent une mise à jour manuelle.

Alternatives ou variantes

Si vous préférez garder le contrôle, utilisez Watchtower en mode notification uniquement, puis lancez vous-même docker compose pull et docker compose up -d. Pour une interface graphique, Portainer peut aider à visualiser les conteneurs. Sur un serveur plus avancé, Renovate peut aussi suivre les versions dans vos fichiers Docker Compose.

Questions fréquentes

Watchtower est-il compatible avec Raspberry Pi OS 64 bits ?

Oui, Watchtower fonctionne avec Docker sur Raspberry Pi OS 64 bits, à condition d’utiliser des images compatibles avec l’architecture ARM de votre Pi.

Faut-il mettre à jour Home Assistant automatiquement ?

Ce n’est pas recommandé pour tout le monde. Home Assistant évolue vite et certaines intégrations peuvent changer. Préférez une sauvegarde puis une mise à jour manuelle si votre domotique est critique.

Watchtower supprime-t-il mes données ?

Il recrée les conteneurs, mais les données conservées dans des volumes persistants restent en place. Si une application stocke ses données uniquement dans le conteneur, il y a un risque de perte.

Comment revenir en arrière après une mauvaise mise à jour ?

Utilisez un tag d’image précédent dans votre fichier Compose, relancez le conteneur, puis restaurez les données si nécessaire. D’où l’importance de sauvegarder avant d’automatiser.

Article rédigé par Vincent Vandegans pour Raspberry Pi France.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *