Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Docker: aggiornare container con Watchtower

Docker: come aggiornare automaticamente i container con Watchtower su Raspberry Pi in un ambiente basato su Linux
Docker: come aggiornare automaticamente i container con Watchtower su Raspberry Pi in un ambiente basato su Linux
Link copiato negli appunti

In passato abbiamo parlato spesso del sistema di container Docker e di quanto siano utili in diversi contesti. L'implementazione di Docker all'interno della propria configurazione semplifica i setting degli applicativi e agevola il deploy del software in ambienti anche molto diversi tra di loro.

Questo perché tramite un container è possibile far operare tutta una serie di programmi, o addirittura un sistema operativo completo, in un ambiente completamente isolato. Il tutto senza avere le rigidità delle più tradizionali macchine virtuali. Questi sono i due principali motivi che hanno portato al successo di Docker e degli altri sistemi di container open source.

In svariate guide vi abbiamo descritto come realizzare dei progetti tramite Docker. Oggi invece vogliamo focalizzarci su un aspetto in particolare dei container: la loro manutenzione.

Cosa è Watchtower

Per un utente tradizionale è possibile gestire manualmente l'aggiornamento di qualche container. Tuttavia la questione cambia quando il numero di istanze aumenta. Amministrare decine di Docker container non è sempre agilissimo ed il loro aggiornamento può richiedere molto tempo, soprattutto se non si utilizzano gli strumenti appropriati.

Ecco perché negli anni sono nati diversi progetti dedicati all'amministrazione e all'aggiornamento automatizzato dei container. Come Watchtower.

Watchtower è un tool open source che consente di monitorare le istanze Docker selezionate dall'utente, cosi da capire se è stata rilasciata una nuova release. Va quindi ad automatizzare il processo di upgrade facilitando il workflow dell'utente che non deve più eseguire il tutto manualmente. Può affidarsi invece a questa comoda utility che fa tutto da sola.

Ovviamente è possibile impostare Watchtower cosi che esegua il self-update delle sole istanze che desideriamo, evitando di incappare in qualche instabilità dovuta ai bug che possono annidarsi all'interno delle release più recenti, e quindi meno rodate, dei Docker container che stiamo utilizzando.

La guida di oggi illustrerà come installare, configurare ed eseguire Watchtower su Raspberry Pi e più nello specifico in un ambiente basato su Linux.

Dotazione hardware

Watchtower non necessità di hardware di ultima generazione per essere eseguito, tuttavia se dovete gestire tanti container Docker vi consigliamo di affidarvi all'ultima edizione della board ARM, con il massimo quantitativo di RAM disponibile.

Inoltre sono necessari: una memoria flash microSD da 128GB, per da ospitare la distribuzione ed i container ed il sistema operativo, un cavo di alimentazione ed ethernet. Oltretutto, se non desiderate configurare il device tramite SSH dovrete dotarvi di mouse, tastiera e monitor oltre che di un cavo HDMI.

Installazione di Raspberry Pi OS

Come sistema operativo, per questa guida abbiamo scelto Raspberry Pi OS. Si tratta della distribuzione Linux di riferimento per la board ARM. Tuttavia non siete obbligati ad utilizzarla, potete infatti selezionare la distro Linux più adatta alle vostre esigenze, l'importante è che sia compatibile con il SoC ARM di Raspberry Pi.

Per procedere all'installazione della distribuzione sfruttiamo un imaging tool a nostra scelta. Noi ci siamo affidati al super rodato Raspberry Pi Imager, un tool open source semplice da utilizzare e molto completo. Quindi scarichiamo l'installer di Raspberry Pi Imager dal suo sito web ufficiale ed avviamolo.

raspberry pi imager

Clicchiamo adesso sul tasto "Choose Device" e selezioniamo dal menu a tendina il modello di device che dobbiamo usare.

raspberry pi imager

Successivamente, da "Choose OS" impostiamo release di Raspberry Pi OS a 64bit mentre con "Choose Storage" indichiamo al tool la microSD su cui eseguire il flash della distribuzione.

raspberry pi imager

Premiamo ora su "Next". In questo step si può decidere se configurare sin da subito alcuni aspetti della distribuzione oppure installarla con il setup base. Vi consigliamo però di sfruttare l'opzione "EDIT SETTING" ed inserire subito l'opzione di accesso tramite SSH sin dal primo boot, un hostname, la time zone ed il keyboard layout.

raspberry pi imager raspberry pi imager

Confermiamo il tutto premendo su "YES" per far partire il processo di flash. L'operazione dovrebbe durare qualche minuto.

raspberry pi imager

Installazione di Docker su Raspberry Pi OS

Se avete impostato i setting consigliati possiamo passare direttamente all'installazione e configurazione del sistema di container Docker. Scarichiamo quindi l'apposito installer:

curl -sSL https://get.docker.com | sh

avviamo ora la sua installazione:

sudo sh get-docker.sh

inseriamo il nostro utente nell'apposito gruppo docker:

sudo usermod -aG docker nomedelvostroutente

ed in fine impostiamo Docker perché venga eseguito in automatico ad ogni boot del sistema tramite systemd:

sudo systemctl enable docker.service && sudo systemctl enable containerd.service

Installazione e configurazione del container Docker di Watchtower

Lo stesso Watchtower viene distribuito in forma di container Docker. Passiamo quindi alla configurazione preliminare andando a generare la directory dove posizionare tutti i file:

sudo mkdir -p /opt/stacks/watchtower

Spostiamoci nella nuova cartella:

cd /opt/stacks/watchtower

ed ora scriviamo il Docker compose file tramite nano:

sudo nano compose.yaml

Questo file va popolato cosi:

version: '3.7'
services:
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock

Di base Watchtower auto-aggiorna tutti i docker che sono in esecuzione nel sistema. Se desiderate selezionare manualmente i container da gestire potete aggiungere questo comando nella parte finale del Docker compose file:

command: NOMEDELCONTAINER1 NOMEDELCONTAINER2 NOMEDELCONTAINER3

Salviamo le modifiche con CTRL+O e chiudiamo nano con CTRL+X. Infine avviamo il Docker di Watchtower:

docker compose up -d

A questo punto la procedura è stata completata. Watchtower opera infatti in modo completamente automatizzato. Ogni 24 ore controlla la presenza di nuove release dei nostri container Docker e le va a scaricare e ad installare automaticamente. Gli stessi developer del progetto consigliano l'uso di Watchtower all'interno di homelab, media center o nei develpment environment locali.

Si tratta di una utility non pensata espressamente per gli ambienti di produzione. Watchtower è quindi un programma dedicato per lo più agli utenti casalinghi o a tutti quei power user che si ritrovano a dover gestire un vasto ventaglio di container Docker all'interno della propria postazione o in un NAS.

Ti consigliamo anche