Cos’è Docker?

Docker è una piattaforma open-source che automatizza il processo di creazione, distribuzione ed esecuzione di applicazioni all’interno di container.

Immaginiamo di voler traslocare, invece di caricare ogni singolo oggetto sfuso sul camion (rischiando che qualcosa si rompa o non entri), mettiamo tutto dentro dei container standard. Docker fa esattamente questo con il software, impacchetta il codice, le librerie e le dipendenze in un unico oggetto leggero che funzionerà allo stesso modo su qualsiasi computer, che sia un PC locale o un server in cloud.

A differenza delle Virtual Machines (VM), Docker non simula un intero sistema operativo. Questo porta vantaggi enormi:

  • Leggerezza: I container condividono il kernel del sistema operativo ospitante, occupando molta meno RAM e CPU.
  • Velocità: Un container si avvia in pochi secondi, mentre una VM richiede minuti.
  • Portabilità: “Funziona sulla mia macchina” non sarà più una scusa. Se il container gira sul tuo PC, girerà ovunque.

Cos’è Docker Compose?

Se Docker gestisce il singolo container, Docker Compose è il “direttore d’orchestra”. Ti permette di definire e avviare applicazioni multi-container (ad esempio: un container per il sito web + un container per il database) usando un semplice file di configurazione in formato YAML docker-compose.yml.


Come installare Docker su una macchina Linux

Per prima cosa assicuriamoci di non aver installato immagini docker non ufficiali, alcuni manutentori delle distro come Canonical “Ubuntu” forniscono distribuzioni non ufficiali dei pacchetti Docker in apt, per disinstallare tali pacchetti eseguiamo il comando:

1
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

Esistono diversi metodi di installazione, in questo tutorial andiamo ad installare Docker e Docker Compose attraverso lo script ufficiale di docker (codice sorgente). Quindi dal nostro terminale eseguiamo il comando:

1
curl -fsSL https://get.docker.com -o get-docker.sh

Una volta scaricato lo script andiamo ad installarlo:

1
sh get-docker.sh | grep -qE "ERROR: Unsupported distribution 'rocky'|ERROR: Unsupported distribution 'almalinux'" && sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Attendiamo qualche minuto, il tempo che l’installazione finisca e successivamente abilitiamo tramite systemd il servizio all’autostart digitiamo i seguenti comandi:

1
2
sudo systemctl enable docker
sudo systemctl start docker

A questo punto aggiungiamo il nostro utente predefinito al gruppo docker per consentirgli di eseguire i comandi senza l’utilizzo dei permessi privilegiati sudo:

1
sudo usermod -a ${USER} -G docker

Affinché le modifiche siano effettive dobbiamo effettuare un logout dall’utente, digitiamo:

1
exit

Successivamente ci logghiamo nuovamente inserendo le credenziali e, per verificare che le modifiche abbiano avuto successo lanciamo il comando:

1
docker -v && docker compose version

Se tutto è andato a buon fine riceveremo, a video, una risposta simile a questa:

docker