In questo rapido tutorial, ti mostreremo come eseguire Watchtower, un semplicissimo strumento che permette di auto-aggiornare le immagini dei container Docker all’ultima versione disponibile, così da avere sempre tutto aggiornato sul nostro server GNU/Linux (sia esso un Raspberry PI, un VPS o un server dedicato).
Watchtower riesce nel suo intento monitorando quando le nuove immagini Docker sono disponibili e si occupa di effettuare la migrazione automatica dei container all’ultima versione.
Questa capacità di auto-aggiornamento può essere una manna dal cielo per chi vuole ridurre al minimo il tempo dedicato ad effettuare la manutenzione sul proprio server GNU/Linux e può essere anche un valido strumento per evitare di rimanere con dei software non aggiornati e vulnerabili esposti su Internet. Inoltre, essendo disponibile esso stesso come immagine Docker, è possibile installarlo in maniera facile e veloce ovunque, incluse le board simili a Raspberry Pi.
Ovviamente, dovresti sempre leggere i changelog prima di installare un aggiornamento software, poiché a volte ci sono cambiamenti che possono comportare la necessità di riconfigurare alcune cose prima di poter utilizzare l’ultima versione (breaking changes). Quindi l’utilizzo di Watchtower dovrebbe essere limitato ai soli container Docker che si è sicuri di voler tenere sempre aggiornati poiché non impattanti sulla disponibilità dei servizi offerti.
Fortunatamente, Watchtower consente di configurare quali container Docker aggiornare automaticamente. Questo ci permette di evitare downtime su eventuali software che non vogliamo vadano offline per colpa di un aggiornamento.
Requisiti
In questa guida daremo per scontato di utilizzare distribuzioni GNU/Linux basate su Debian (come Debian stessa, Ubuntu o Raspberry Pi OS).
- Raspberry PI (consiglierei dal 3 in su, in ogni caso va bene un qualsiasi computer o macchina virtuale, meglio se su x86_64 o su ARM64) oppure un VPS (consigliato almeno 2 GB di RAM per evitare intoppi).
- Almeno 8 GB di spazio libero su disco;
- Connettività a Internet.
- Docker installato e delle immagini Docker installate in precedenza.
Se non hai Docker installato, ti consigliamo di seguire questa guida per installarlo. E magari, installa anche una qualche applicazione tramite esso, che vorrai aggiornare automaticamente.
Installazione Watchtower su Linux
Nelle seguenti sezioni, ti guideremo attraverso il semplice processo di configurazione e gestione di Watchtower sul tuo sistema GNU/Linux.
Questo è uno dei container Docker più semplici da eseguire, poiché richiede pochissima configurazione. Una volta attivo, questo tool controllerà la presenza di nuove versioni ogni 24 ore e provvederà ad auto-aggiornarsi.
Preparazione del sistema per eseguire Watchtower
1. Per poter procedere, dobbiamo avere Docker installato. Conseguentemente, seguiamo questa guida nel caso in cui non lo avessimo ancora installato.
2. Con Docker installato, possiamo creare una directory dove memorizzare il file di Docker Compose per Watchtower e accedervi, una volta creata.
È possibile utilizzare il comando mkdir all’interno del terminale per creare questa directory e subito dopo entrarci, come riportato di seguito:
sudo mkdir -p /opt/stacks/watchtower && cd /opt/stacks/watchtower
3. Una volta entrati nella directory appena creata, il nostro prossimo passo è scrivere un file di Docker Compose per Watchtower sul nostro sistema GNU/Linux.
Puoi iniziare a scrivere questo file usando l’editor di testo nano, come riportato qui sotto:
sudo nano compose.yaml
Configurazione del file di Docker Compose per Watchtower
4. Una volta aperto il file “compose.yaml” con un editor di testo (nano, nel nostro caso), inseriamo il contenuto riportato di seguito.
Fondamentalmente, le seguenti istruzioni dicono a Docker quale immagine scaricare e da dove recuperarla, oltre a permettere l’accesso al container di Watchtower all’ambiente runtime di Docker:
version: '3.7'
services:
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
5. Per impostazione predefinita, Watchtower aggiornerà automaticamente qualsiasi container in esecuzione sul tuo sistema GNU/Linux.
Se vuoi che solo i container da te indicati vengano aggiornati automaticamente, aggiungi la seguente riga al file di Docker Compose.
Sostituisci <NOME-CONTAINER>
con il nome del container che vuoi mantenere aggiornato. Puoi specificare più container separandoli con uno spazio.
command: <NOME-CONTAINER>
6. Una volta fatto, salviamo ed usciamo premendo CTRL + X, quindi Y e poi il tasto ENTER.
Avviare Watchtower su Linux
7. Con il file di Docker Compose scritto, possiamo avviare Watchtower con il comando qui sotto.
Docker scaricherà l’immagine di Watchtower e la avvierà immediatamente. Una volta trascorse 24 ore, Watchtower aggiornerà automaticamente tutti i container Docker che rileverà come obsoleti, salvo indicazioni diverse indicate al punto 5 di questa guida.
docker compose up -d
A questo punto dovreste essere riusciti ad installare e avviare Watchtower sul vostro sistema GNU/Linux, sia esso un Raspberry Pi, un VPS o un server dedicato.
Questo strumento è super utile per mantenere i container aggiornati, particolarmente utile per evitare di dover fare manutenzione a software che si vuole semplicemente installare tramite Docker e dimenticarsi di dover tenere aggiornati.
Naturalmente, ci sono rischi per l’utilizzo di uno strumento come Watchtower, come ad esempio che un software possa risultare rotto a seguito di un aggiornamento a causa di eventuali nuovi requisiti di configurazione.
Non esitare a lasciare un commento qui sotto se hai domande o altro correlato a questo tool.
Se hai trovato questa guida utile, ti consigliamo di farti un giro sui nostri altri progetti dedicati al mondo GNU/Linux.