Diego Betto
Docker and Portainer

Diego Betto · 27 giugno 2022 · 2 min di lettura

Portainer: aggiornare la tua istanza Docker in modo semplice

Come aggiornare in sicurezza la tua istanza di Portainer con un semplice script bash, senza perdere container o volumi.

Condividi:XLinkedInFacebookWhatsApp

Portainer è uno strumento davvero comodo per gestire i tuoi container, volumi e reti Docker da interfaccia web.

Una delle cose che può spaventare all’inizio è come si aggiorna Portainer. In realtà è molto semplice e non dovresti perdere alcun dato.

Io uso Linux Ubuntu/Debian, quindi nel tuo caso le cose potrebbero essere leggermente diverse, ma dovrebbe essere facile adattare lo script. Puoi creare uno script semplice come questo:

#!/bin/bash
sudo docker pull portainer/portainer-ce
sudo docker stop portainer
sudo docker rm portainer

sudo docker run --name portainer --restart=unless-stopped -d -p 8000:8000 -p 9000:9000 \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data portainer/portainer-ce

Lo script si occupa di:

  • aggiornare l’immagine locale di Portainer
  • fermare il container
  • rimuoverlo (non il volume con i dati)
  • avviare il nuovo container

Puoi salvarlo in ~/.local/bin con il nome update-portainer e poi dargli i permessi di esecuzione (con chmod +x ~/.local/bin/update-portainer).

Da quel momento ti basterà lanciare update-portainer da bash e il tuo container Portainer verrà aggiornato.

Prima di aggiornare: un backup extra del volume

Lo script sopra non tocca il volume portainer_data, quindi i tuoi dati restano al sicuro negli aggiornamenti normali. Se vuoi comunque un backup di sicurezza prima di un aggiornamento importante (es. un major bump), puoi esportare il volume in un tar:

docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine \
    tar czf /backup/portainer_data_backup.tar.gz -C /data .

Controlla le release notes prima di aggiornare

Prima di lanciare lo script, dai un’occhiata alle release notes di Portainer: a volte una major version porta breaking change nella configurazione o richiede una migrazione manuale del database interno.

Se usi già Docker Compose

Se il tuo Portainer è già gestito con docker-compose.yml invece che con un docker run singolo, l’aggiornamento si riduce a:

docker compose pull portainer
docker compose up -d portainer

Stesso risultato, comando ancora più corto.

Facile. Se usi anche WordPress su Docker, ho scritto anche una guida su come creare lo stack con wpdockerize.

Buona giornata!

Condividi:XLinkedInFacebookWhatsApp
Diego Betto

Scritto da

Diego Betto

Co-Fondatore & CTO presso PAPION. Senior full-stack engineer specializzato in React, TypeScript, Node.js e sicurezza applicativa.