Torre di avvistamento è un'applicazione open source gratuita che consente di monitorare i contenitori Docker in esecuzione e di aggiornarli automaticamente quando rileva eventuali modifiche nelle loro immagini di base. Quando watchtower rileva che un container in esecuzione deve essere aggiornato, interromperà con garbo il container in esecuzione inviandogli un segnale SIGTERM. Quindi scaricherà la nuova immagine e infine riavvierà il contenitore con le stesse opzioni utilizzate al momento della distribuzione iniziale. Tutto avverrà automaticamente in background, quindi non è necessario l'intervento dell'utente. In questa guida vedremo come aggiornare automaticamente i container Docker in esecuzione utilizzando Watchtower in sistemi operativi simili a Unix.
Ho testato questa guida in CentOS 7 edizione minima, tuttavia la procedura è la stessa per tutte le distribuzioni Linux.
Watchtower - Aggiorna automaticamente i contenitori Docker in esecuzione
Installa Watchtower
La stessa Watchtower è disponibile come immagine Docker. Quindi, implementarlo non è un grosso problema. Installa Docker sulla tua macchina Linux e inizia a eseguire Watchtower per monitorare i container Docker in pochissimo tempo.
Fare riferimento alle seguenti guide per installare Docker su sistemi basati su YUM e DEB.
- Come installare Docker in CentOS
- Come installare Docker in Ubuntu
Una volta installato Docker, puoi distribuire il contenitore Watchtower utilizzando il seguente comando come root utente:
# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower
Questo comando estrarrà l'ultima immagine della torre di guardia e avvierà il contenitore della torre di guardia.
Risultato di esempio:
Unable to find image 'v2tec/watchtower:latest' locally latest: Pulling from v2tec/watchtower a3ed95caeb02: Pull complete 802d894958a2: Pull complete 9916c27d2815: Pull complete Digest: sha256:d89ea18b6332cc83639771fda274ebfd76f7042856d8f4997e99c7925ad02ae9 Status: Downloaded newer image for v2tec/watchtower:latest e85c923f2e4dd22a62c12b038ea9694ba9245dcd835f210e1a1f902ee311e004Download consigliato - eBook gratuito:"Docker Containerization Cookbook"
Utilizzo
Watchtower è ora avviato con altri container in esecuzione sul tuo sistema. Puoi visualizzare l'elenco dei contenitori Docker in esecuzione utilizzando il comando:
# docker ps
Risultato di esempio:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e85c923f2e4d v2tec/watchtower "/watchtower" 3 minutes ago Up 3 minutes watchtower 58543e6ed18a centos:latest "/bin/bash" 5 minutes ago Up 5 minutes ostechnix
Come puoi vedere nell'output sopra, il contenitore Watchtower è in esecuzione insieme a un altro contenitore chiamato "otechnix". D'ora in poi, Watchtower inizierà a guardare questo container ogni pochi minuti. Se rileva eventuali modifiche nell'immagine di base di questo contenitore, spegnerà con grazia il contenitore "otechnix" e lo riavvierà con una nuova immagine con le stesse opzioni utilizzate all'avvio iniziale. Allo stesso modo, controllerà automaticamente gli aggiornamenti per tutti i contenitori in esecuzione ogni pochi minuti e li aggiornerà automaticamente.
Per impostazione predefinita, Watchtower monitorerà tutti i container Docker in esecuzione all'interno del demone Docker a cui è puntato. Tuttavia, puoi limitare la torre di controllo al monitoraggio di un particolare container Docker specificando il nome del container come mostrato di seguito.
# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower ostechnix
Nell'esempio precedente, watchtower monitorerà solo il contenitore denominato "otechnix" per gli aggiornamenti e gli altri contenitori in esecuzione verranno ignorati. Se non specifichi alcun argomento, watchtower monitorerà tutti i Docker Container in esecuzione come al solito.
Lettura consigliata:
- Introduzione a Docker
- ctop – Uno strumento di monitoraggio della riga di comando per i container Linux
- Dockly - Gestisci i container Docker dal terminale
- Portainer:il modo più semplice per gestire Docker
- PiCluster:una semplice applicazione di gestione Docker basata sul Web
Watchtower è abbastanza intelligente quando si tratta di monitorare più container collegati. Supponiamo che tu stia eseguendo due contenitori denominati "Nginx" e "wordpress" che è collegato al contenitore "Nginx". Se Watchtower trova un aggiornamento per il contenitore "Nginx", prima chiuderà il contenitore collegato, ad esempio "wordpress", quindi arresterà il contenitore Nginx. Quindi, riavvierà entrambi i contenitori nell'ordine corretto, in modo che l'applicazione torni correttamente. Nel nostro caso, verrà avviato per primo il contenitore Nginx, seguito dal contenitore wordpress per garantire che il collegamento continui a funzionare. Per maggiori dettagli, fare riferimento al collegamento alla pagina Watchtower GitHub fornito alla fine di questa guida.
E questo è tutto. Se trovi utili le nostre guide, condividile sui tuoi social network professionali e supporta OSTechNix. Altre cose buone in arrivo. Resta sintonizzato!
Ciao!