community italiana di domotica personale
 
Come installare Docker su Raspberry Pi OS (Raspbian) di Raspberry Pi

Come installare Docker su Raspberry Pi OS (Raspbian) di Raspberry Pi

SCOPI DELLA GUIDA:
  • Installare e configurare l’ambiente di virtualizzazione Docker su Raspberry Pi dotato di sistema operativo Raspberry Pi OS
  • Livello di difficoltà: basso
CONCETTI AFFRONTATI:
  • installazione e configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
  • Sistema operativo Raspberry Pi OS (Raspberry Pi OS)
  • Docker per Raspberry Pi OS
  • Docker Compose per Raspberry Pi OS (facoltativo)
PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI:
GUIDA MAGGIORMENTE INDICATA PER:

Raspbian

NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata e realizzata SOLO da personale qualificato;
  • qualsiasi modifica non prevista attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno infatti puro scopo didattico) e fa decadere garanzia, omologazioni e certificazioni di qualità; dei dispositivi interessati;
  • tutte le tecniche descritte si intendono applicate a software e firmware aggiornati alle ultime versioni disponibili;
  • gli articoli di inDomus sono totalmente indipendenti e non sponsorizzati. Se mai questo cambiasse, verrà segnalato chiaramente sulle pagine oggetto di sponsorizzazione;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In caso di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat;
  • se hai bisogno di orientarti, c'è la mappa.
Revisione guida: 1.7

Raspbian + Docker

Abstract

L’avvento di Docker (e di altri ambienti similari) ha portato una grande ventata di novità negli ultimi anni. Citando Wikipedia, Docker è “un progetto open-source che automatizza il deployment di applicazioni all’interno di contenitori software, fornendo un’astrazione aggiuntiva grazie alla virtualizzazione a livello di sistema operativo di Linux.

Detta in parole più semplici, Docker crea sul sistema operativo (che sia Raspberry Pi OS di Raspberry Pi come Windows, macOS e altre centinaia di realtà operative) uno strato di virtualizzazione software sul quale “far girare” porzioni di software in modo del tutto isolato e autonomo. Questo porta con sé tutta una serie di vantaggi, a partire dalla sicurezza, dalla rapidità di installazione dei contenuti, la facilità nel effettuare backup, la possibilità di “testare” molti software senza “sporcare” il sistema e molto altro ancora. Su Docker HUB è possibile trovare decine e decine di applicazioni liberamente scaricabili ed eseguibili tramite questo strumento (ovviamente su Raspberry sono utilizzabili solo quelle adatte all’architettura ARM tipica di questo micro-computer).

Installare Docker su Raspberry Pi OS è un gioco da ragazzi, ed è pratica comune per chi voglia installare applicativi distribuiti in modalità container per questo ambiente di virtualizzazione. Due esempi tra tanti? L’HUB per domotica personale Home Assistant in distribuzione Core (vedi guida) o in distribuzione Home Assistant Supervised (vedi guida).

Assunti

Questa guida è dedicata a chi abbia già un Raspberry in uso con sistema operativo Raspberry Pi OS. Per coloro che non abbiano ancora provveduto e si trovino ad avere un Raspberry nuovo, magari acquistato appositamente per realizzare la propria domotica, allora questo passo della guida va smarcato seguendo prima un’altra guida, che spiega passo passo come configurare il sistema operativo Raspberry Pi OS.

La guida da seguire:

Una volta terminata la configurazione di Raspberry Pi OS (inclusa la possibilità di collegarvisi tramite SSH e avendone perfezionato la configurazione) è possibile procedere nella presente guida.

Docker

INSTALLAZIONE AUTOMATICA

Una volta collegati via SSH al proprio Raspberry (avendo cura di utilizzare l’utenza “pi“), eseguire innanzitutto un aggiornamento dell’ambiente tramite i seguenti comandi:

sudo apt-get update -y
sudo apt-get upgrade -y
sudo reboot

Successivamente al riavvio causato dall’ultimo comando, installare tramite procedura automatica l’ambiente di virtualizzazione Docker tramite il comando:

sudo curl -fsSL https://get.docker.com -o /tmp/get-docker.sh
sudo chmod +x /tmp/get-docker.sh
sudo sh /tmp/get-docker.sh

Al termine, saltare alla configurazione successiva. In caso di problemi con l’installazione di Docker, tentare con la procedura manuale qui di seguito illustrata.

INSTALLAZIONE MANUALE

In caso l’installazione automatica non vada a buon fine, è possibile effettuare l’installazione manualmente. Anche in questo caso, una volta collegati via SSH al proprio Raspberry (avendo cura di utilizzare l’utenza “pi“), eseguire innanzitutto un aggiornamento dell’ambiente tramite i seguenti comandi:

sudo apt-get update -y
sudo apt-get upgrade -y
sudo reboot

Successivamente al riavvio causato dall’ultimo comando, eseguire il seguenti comandi:

sudo apt-get install apt-transport-https ca-certificates curl avahi-daemon dbus -y
sudo apt-get install jq apparmor-utils socat software-properties-common -y

Ora è necessario installare “Network manager”, un pacchetto specifico. Per installarlo è necessario essere collegati via SSH tramite connessione cablata e non Wi-Fi oppure tramite terminale lavorando direttamente e fisicamente connessi a Raspberry.
Non lanciare il comando che segue tramite connessione Wi-Fi, ma solo se connessi via cavo Ethernet.

sudo apt-get install network-manager

Infine, riavviamo il Raspberry per rendere effettive le modifiche:

sudo reboot

Una volta riavviato il sistema operativo, ricollegarsi ed eseguire il seguenti comandi (attenzione: copiare per la loro interezza le stringhe che seguono):

sudo curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add -
echo "deb [arch=armhf] https://download.docker.com/linux/raspbian buster stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install docker-ce -y

Vetrina Promo

Sudoers

Sudo (a volte considerato l’abbreviazione di Super-user do) è un programma progettato per far sì che gli amministratori di sistema permettano ad alcuni utenti di eseguire certi comandi come root (o altro utente). La filosofia di base è quella di dare meno privilegi possibile, ma permettere ancora di compiere il lavoro. Sudo è anche un modo efficace per registrare chi ha usato un dato comando e quando.

Si consiglia, arrivati a questo punto, di aggiungere docker al gruppo dei sudoers tramite i comandi:

sudo usermod -aG docker $USER
sudo reboot

Dopo l’esecuzione di tali comandi, chiudere la sessione SSH con

exit

e poi ricollegarsi nuovamente.

Docker compose

Come abbiamo spiegato qui, il tool “Docker Compose” può essere utilizzato sia come plug-in sia come applicazione a se stante. Se si è seguita la parte sopra di installazione, allora si ha già a disposizione la modalità plug-in; qualora si necessitasse di installarlo su una vecchia installazione di Docker, è sufficiente il comando:

sudo apt-get install docker-compose-plugin

altrimenti non c’è bisogno di altro, se non di ricordarsi che qualsiasi esecuzione di “Docker Compose” andrà eseguita tramite il comando “docker compose” non “docker-compose” (quindi senza trattino).


Se invece, per qualche motivo, si decide di adottare “Docker Compose” in modalità applicazione a se stante, l’installazione si effettua tramite:

python3 -m pip install docker-compose
sudo reboot

Mentre, se siete in ambito venv, è possibile usare il comando:

sudo python3 -m pip install docker-compose
sudo reboot

In quetsa modalità, ricordarsi che qualsiasi esecuzione di “Docker Compose” andrà eseguita tramite il comando “docker-compose” non “docker compose” (quindi con il trattino).

Verifiche

Successivamente all’avvenuta installazione e per verificare che Docker sia correttamente installato, eseguire il seguente comando:

docker run hello-world

Per confermare la bontà dell’installazione ed esecuzione di Docker, l’output dev’essere simile al seguente:

Unable to find image 'armhf/hello-world:latest' locally
latest: Pulling from armhf/hello-world
a0691bf12e4e: Pull complete 
Digest: sha256:9701edc932223a66e49dd6c894a11db8c2cf4eccd1414f1ec105a623bf16b426
Status: Downloaded newer image for armhf/hello-world:latest

Hello from Docker on armhf!
This message shows that your installation appears to be working correctly.

Complimenti!
Docker è ora installato e operativo sul vostro sistema.

Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa.