Vai al contenuto principale

Installa Docker su Ubuntu: dall’installazione al primo container

Bastano pochi comandi da una nuova installazione del sistema operativo per eseguire la tua prima applicazione containerizzata. Scopri come farlo con questa guida definitiva all’installazione di Docker su Ubuntu.
· 11 min leggi

Scopri con l'IA

Se vuoi smettere di dire "sul mio computer funziona", la containerizzazione è la strada giusta.

In poche parole, la containerizzazione ti consente di impacchettare le applicazioni in ambienti leggeri e isolati chiamati container. Questi includono tutto il necessario per eseguire l’applicazione, come codice e dipendenze, ma nulla di superfluo. Un’app containerizzata gira in modo coerente su ambienti diversi, che sia il tuo laptop, un server di test o la produzione.

Docker resta la piattaforma di riferimento per containerizzare applicazioni nel 2025. Può girare su qualsiasi sistema operativo, ma come per la maggior parte degli strumenti di sviluppo, i sistemi basati su UNIX sono preferiti.

In questo articolo imparerai a installare Docker su Ubuntu, ad avviare il tuo primo container e a gestire e monitorare i container in esecuzione.

La configurazione è semplice, ma richiede alcuni passaggi. Andiamo al sodo!

Docker è la stessa cosa di Kubernetes? Ecco tutte le differenze che ogni sviluppatore dovrebbe conoscere.

Preparare il tuo sistema Ubuntu

Prima di installare Docker su Ubuntu, ci sono alcune operazioni preliminari da svolgere. Te ne occupi tutte in questa sezione.

Per iniziare, assicurati di utilizzare un sistema Ubuntu, versione Desktop o Server. Noi stiamo usando Ubuntu Server 24.04:

Dettagli del sistema operativo

Immagine 1 - Dettagli del sistema operativo

Se vedi un output simile a quello mostrato nell’immagine sopra, sei a posto.

Verifica i requisiti di sistema

Prima di installare Docker, assicurati che il tuo sistema abbia risorse sufficienti per eseguirlo.

Sebbene Docker non specifichi requisiti minimi sul suo sito (a parte le architetture CPU compatibili), abbiamo riscontrato che quanto segue è sufficiente per eseguire Docker in sé:

  • Sistema operativo: Ubuntu Desktop/Server 20.04 o successivo  
  • Architettura CPU: 64 bit (x86_64 o arm64)  
  • Memoria: 512 MB di RAM  
  • Archiviazione: 5 GB  

Una macchina con queste specifiche ti consentirà di eseguire Docker, ma non molto altro. Non aspettarti di far girare container complessi o applicazioni multi-container.

Se hai in programma di fare di più, punta ad almeno 2 GB di RAM, 25 GB di spazio e una CPU moderna.

Aggiorna il tuo sistema Ubuntu

Stiamo eseguendo Docker su una nuova istanza di Ubuntu Server, quindi forniremo tutti i comandi necessari per predisporre i prerequisiti di Docker.

Per prima cosa, aggiorna l’elenco dei pacchetti del sistema e aggiorna i pacchetti esistenti eseguendo il seguente comando:

sudo apt update && sudo apt upgrade -y

Questo processo può richiedere alcuni minuti, ma garantisce che il gestore pacchetti recuperi le versioni più recenti e gli aggiornamenti di sicurezza.

Assicurati dei prerequisiti

Docker richiede alcune dipendenze per essere installato e funzionare correttamente. Esegui questo comando per installarle:

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

In breve, il comando sopra abilita il download dei pacchetti via HTTPS e installa gli strumenti necessari per recuperare le chiavi GPG di Docker (di cui parleremo più avanti).

E questo è tutto: il tuo sistema è ora pronto per installare Docker!

Installare Docker su Ubuntu

Una volta gestiti i prerequisiti di sistema, installare Docker su Ubuntu è un processo in quattro passaggi.

Passaggio 1: aggiungi la chiave GPG ufficiale di Docker

La chiave GPG (GNU Privacy Guard) di Docker viene utilizzata per firmare pacchetti e repository di Docker, garantendo l’integrità e l’autenticità di immagini e pacchetti.

Inizia eseguendo il comando shell appropriato per scaricare la chiave e memorizzarne una versione convertita compatibile con APT in /usr/share/keyrings.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Passaggio 2: aggiungi il repository APT ufficiale di Docker

Ora, aggiungi il repository ufficiale di Docker al tuo sistema.

Il prossimo comando utilizza la chiave GPG salvata in precedenza per verificare l’autenticità del repository e poi lo aggiunge alle sorgenti dei pacchetti di sistema:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Dopodiché, aggiorna l’elenco dei pacchetti del sistema per includere il nuovo repository:

sudo apt update

Passaggio 3: installa Docker

Ora che il repository è configurato, sei pronto per installare Docker su Ubuntu.

Il comando di installazione installerà il motore Docker principale, la sua interfaccia a riga di comando e il runtime per gestire l’esecuzione dei container:

sudo apt install -y docker-ce docker-ce-cli containerd.io

Una volta completata l’installazione, dovresti vedere un output che conferma il successo dell’operazione:

Risultati dell’installazione di Docker

Immagine 2 - Risultati dell’installazione di Docker

Passaggio 4: verifica l’installazione di Docker

Docker dovrebbe ora essere installato sul tuo sistema.

Per verificarlo, stampa la versione di Docker sulla console. Se l’installazione è andata a buon fine, dovresti vedere visualizzato un numero di versione:

docker --version

Versione di Docker installata

Immagine 3 - Versione di Docker installata

A fine gennaio 2025, la versione 27.5.1 di Docker è l’ultima disponibile, e la stiamo eseguendo con successo su Ubuntu Server.

Passi successivi dopo l’installazione

Ora hai installato Docker e sei pronto per iniziare a containerizzare le tue applicazioni.

Ma cos’è la containerizzazione? Il nostro corso sui concetti di Containerization and Virtualization ti insegnerà le basi.

Prima di farlo, ti consigliamo tre passaggi di configurazione aggiuntivi per ottenere il massimo. Questa sezione fa per te se vuoi eseguire Docker all’avvio del sistema o gestire immagini e container come utente non root.

Passaggio 1: avvia ed abilita il servizio Docker

Il servizio Docker è attualmente in esecuzione sul tuo sistema, ma non si avvierà automaticamente dopo un riavvio.

Per fare in modo che Docker si avvii automaticamente al boot, usa systemctl per abilitare il servizio:

sudo systemctl enable docker

Dovresti vedere un output simile al nostro:

Abilitare il servizio Docker all’avvio

Immagine 4 - Abilitare il servizio Docker all’avvio

In futuro, se dovessi mai vedere un messaggio che indica che Docker non è in esecuzione (cosa che non dovrebbe succedere), puoi avviare Docker manualmente con il seguente comando:

sudo systemctl start docker

Docker ora rimarrà attivo finché il sistema è acceso.

Passaggio 2: controlla lo stato di Docker

Ci sono alcuni comandi aggiuntivi di systemctl che puoi usare per gestire il servizio Docker.

Ad esempio, il comando status mostra lo stato di un servizio, che più comunemente è active, inactive o failed. Anche se esistono altri stati possibili, questi tre sono i più frequenti:

sudo systemctl status docker

Stato del servizio Docker

Immagine 5 - Stato del servizio Docker

Se il tuo servizio Docker è attivo, tutto funziona correttamente.

Se vedi uno stato diverso per Docker o per qualsiasi altro servizio, il riavvio dovrebbe risolvere il problema:

sudo systemctl restart docker

Una volta riavviato, puoi ricontrollare lo stato per confermare che il servizio sia attivo.

Passaggio 3: gestisci Docker come utente non root

Per impostazione predefinita, l’esecuzione dei comandi Docker richiede sudo, il che può essere scomodo. Significa che devi digitare sudo prima di qualsiasi comando docker.

Per fortuna, c’è un modo semplice per consentire agli utenti non root di eseguire comandi Docker: aggiungere l’utente corrente al gruppo docker:

sudo usermod -aG docker $USER

Dopo aver eseguito il comando sopra, esci e rientra per applicare la modifica. Dovresti ora poter eseguire comandi Docker senza privilegi di superutente.

Lo verificheremo nella prossima sezione.

Testare l’installazione di Docker

Docker è ora installato e configurato. Si avvia anche automaticamente al boot e consente al tuo utente di eseguire comandi direttamente.

In questa sezione, concluderemo eseguendo due container: uno per un semplice esempio "Hello, World!" e un altro per uno script Python.

Passaggio 1: esegui un container di test Docker

Docker fornisce un’immagine di test chiamata hello-world, utilizzata esclusivamente per confermare che Docker funzioni correttamente.

Esegui il seguente comando per avviare l’immagine:

docker run hello-world

Poiché l’immagine non è presente in locale, Docker la scaricherà automaticamente dal web. Dopo qualche istante, dovresti vedere un output simile a questo:

Esempio hello world di Docker

Immagine 6 - Esempio hello world di Docker

In sintesi, questo conferma che Docker è installato correttamente, il demone Docker è in esecuzione e il tuo sistema può effettuare il pull delle immagini da Docker Hub.

Passaggio 2: esegui il tuo primo container “reale”

Se vuoi creare immagini da zero, questa sezione fa per te.

Costruiremo una semplice immagine con Python 3.9 che, quando avviata, esegue uno script Python personalizzato.

Inizia creando una cartella dedicata e un file app.py che verrà eseguito:

mkdir python-docker-test && cd python-docker-test
nano app.py

Il file contiene solo un semplice comando print(), ma ovviamente puoi ampliarlo con logiche più complesse:

print("Hello from Docker running on Ubuntu!")

Nella stessa cartella, crea un Dockerfile, che indica a Docker come costruire l’immagine passo dopo passo:

nano Dockerfile

Queste tre righe sono tutto ciò che ti serve:

FROM python:3.9-slim
COPY app.py /app.py
CMD ["python", "/app.py"]

In sostanza, Docker viene istruito a recuperare l’immagine python:3.9-slim da Docker Hub, copiare lo script app.py nel container e poi eseguire lo script.

A questo punto dovresti avere i seguenti file nella tua directory di lavoro:

Contenuti dell’applicazione Python di esempio

Immagine 7 - Contenuti dell’applicazione Python di esempio

Per costruire l’immagine, esegui il seguente comando:

docker build -t python-hello .

Il comando sopra crea una nuova immagine nella directory corrente (.) e le assegna il tag python-hello.

Creazione di un’immagine Docker

Immagine 8 - Creazione di un’immagine Docker

Per eseguire l’immagine, usa il comando docker run seguito dal tag dell’immagine. Il flag opzionale --rm fa sì che il container venga rimosso al termine, che avviene subito dopo la fine dell’esecuzione dello script Python:

docker run --rm python-hello

Esecuzione di uno script Python in Docker

Immagine 9 - Esecuzione di uno script Python in Docker

E proprio così, hai containerizzato con successo la tua prima applicazione Python con Docker su Ubuntu!

Se cerchi un’applicazione di Docker al machine learning, la guida di DataCamp Containerization: Docker and Kubernetes for Machine Learning è una lettura consigliata.

Aggiornare e disinstallare Docker su Ubuntu

Eseguire Docker nel tuo ambiente ti dà pieno controllo, ma ti rende anche responsabile di restare al passo con gli ultimi aggiornamenti, le nuove funzionalità e le patch di sicurezza.

Questa sezione spiega come svolgere attività di base come aggiornare Docker e rimuoverlo completamente dal sistema.

Aggiornare Docker

Aggiornare Docker si riduce a due passaggi principali:

  • Aggiornare l’elenco dei pacchetti per recuperare l’ultima versione di Docker.
  • Aggiornare Docker (core, CLI e runtime di gestione dei container) alla versione più recente.

Esegui i seguenti comandi nel terminale per aggiornare Docker su Ubuntu:

sudo apt update
sudo apt upgrade -y docker-ce docker-ce-cli containerd.io
docker --version

Il comando docker -- version mostra la versione attualmente installata. È il modo più semplice per verificare se l’aggiornamento è andato a buon fine.

Disinstallare Docker

Se devi rimuovere Docker dal sistema, inizia disinstallando Docker e i pacchetti correlati e rimuovendo eventuali file e configurazioni rimasti.

Inoltre, puoi facoltativamente rimuovere il repository Docker dalle sorgenti APT.

I quattro comandi seguenti disinstalleranno Docker dal tuo sistema Ubuntu, ma tieni presente che solo i primi tre sono necessari:

sudo apt remove -y docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

# Optional
sudo rm /etc/apt/sources.list.d/docker.list

Dopo aver eseguito questi comandi, l’esecuzione di docker --version dovrebbe restituire un errore che indica che Docker non è più installato.

Best practice per Docker su Ubuntu

Gestire Docker richiede manutenzione continua, poiché spetta a te rimuovere le risorse inutilizzate e monitorare le prestazioni.

In questa sezione, tratteremo due attività essenziali di “pulizia” da eseguire regolarmente mentre usi Docker su Ubuntu.

Pulisci regolarmente le risorse Docker

Col tempo, immagini, container, network e volumi Docker inutilizzati possono accumularsi, consumando una quantità significativa di spazio su disco.

La pulizia di queste risorse è nota come pruning, anche se una spiegazione dettagliata esula dallo scopo di questo articolo.

Ricorda solo questo comando — rimuoverà in una volta sola tutti i container, le immagini, i volumi e le reti non utilizzati:

docker system prune -a -f

Pulizia delle risorse

Immagine 10 - Pulizia delle risorse

Noi abbiamo recuperato solo 10 kB, ma in un ambiente più “serio” questo comando può spesso liberare decine di gigabyte di spazio su disco.

Metti in sicurezza la tua installazione di Docker

Abbiamo già coperto due argomenti importanti per la sicurezza — mantenere Docker aggiornato e gestire i permessi di superutente.

Oltre a questi, ecco alcuni altri passaggi per migliorare la sicurezza di Docker su Ubuntu:

  • Limita i privilegi dei container: evita per quanto possibile di eseguire container con il flag --privileged, poiché disattiva molti controlli di sicurezza che isolano i container dal sistema host.
  • Usa solo immagini ufficiali e affidabili: non scaricare immagini da registry di terze parti non verificati. Attieniti a fonti affidabili come Docker Hub e registry privati.
  • Abilita Docker Content Trust (DCT): impostare questa variabile d’ambiente garantisce l’uso solo di immagini firmate e verificate.

Monitora le prestazioni di Docker

La CLI di Docker include potenti strumenti per aiutarti a monitorare le prestazioni dei container e individuare potenziali problemi.

Prima di usarli, modifichiamo il file app.py per mantenerlo in esecuzione dopo l’avvio del container:

import time

time.sleep(10000)
print("Hello from Docker running on Ubuntu!")

Il motivo è semplice — ci serve un container in esecuzione per monitorarne le prestazioni.

Partiamo dal comando ps. In breve, elenca tutti i container attualmente in esecuzione:

docker ps

Container Docker in esecuzione

Immagine 11 - Container Docker in esecuzione

Sebbene l’output non dica molto, il campo CONTAINER ID è fondamentale per ulteriori ispezioni.

Ora, esploriamo il comando stats, che mostra l’utilizzo delle risorse in tempo reale, inclusi CPU, memoria e consumo di rete per tutti i container in esecuzione:

docker stats

Statistiche del container

Immagine 12 - Statistiche del container

Se ti serve una ripartizione dettagliata dell’uso delle risorse e della configurazione di un container, usa il comando inspect.

Devi solo fornire l’ID del container:

docker inspect <container_id>

Dettagli del container

Immagine 13 - Dettagli del container

Se stai riscontrando problemi con un container Docker, il comando logs può aiutarti a diagnosticare il problema e potenzialmente individuarne la causa.

Richiede anche l’ID del container:

docker logs <container_id>

Terminale che mostra i log del container

Immagine 14 - Log del container

A volte, potresti dover accedere direttamente a un container in esecuzione. Se conosci l’ID del container, è semplice:

docker exec -it <container_id> bash

Terminale che mostra i log del container

Immagine 15 - Log del container

Il comando precedente apre una shell all’interno del container Docker specificato, consentendoti di accedere o modificare direttamente i file.

Riepilogo su Docker in Ubuntu

Oggi hai imparato a installare, configurare e gestire Docker su Ubuntu. 

Se hai seguito ogni passaggio, avrai Docker in esecuzione sul tuo sistema, con avvio automatico al boot e senza richiedere permessi di superutente per gestire i container. Hai anche imparato a verificare l’installazione di Docker, eseguire container di test e persino creare la tua prima applicazione Python containerizzata personalizzata.

È tanto, ma è solo l’inizio. C’è molto altro da approfondire nel mondo della containerizzazione, e ti consigliamo vivamente di consultare le nostre risorse ufficiali per diventare esperto in Docker:

FAQ

A cosa serve Docker?

Docker viene utilizzato per automatizzare il deployment delle applicazioni in container leggeri, che impacchettano un’app e le sue dipendenze in un ambiente isolato, riproducibile e indipendente dall’host.

Ubuntu è adatto a Docker?

Ubuntu è un’ottima scelta per eseguire Docker, sia nella variante Desktop che Server. È una distribuzione Linux popolare e stabile, amata dagli sviluppatori. Detto ciò, puoi eseguire Docker anche su altre distribuzioni Linux.

Perché dovrei usare Docker?

Docker offre i vantaggi di un ambiente coerente per sviluppo/test/produzione, un deployment più rapido e uno scaling più semplice, rendendo al contempo l’applicazione facile da spostare tra ambienti e sistemi diversi.

Qual è la differenza tra Docker e macchine virtuali?

I container Docker condividono il kernel e le risorse del sistema host, rendendoli più leggeri e veloci delle macchine virtuali. Le VM eseguono sistemi operativi separati e richiedono più risorse.

Come faccio a sapere se Docker funziona correttamente?

Puoi iniziare verificando se Docker è installato eseguendo il comando docker –version. Inoltre, l’esecuzione di un semplice container di test come hello-world verificherà che Docker sia funzionante.

Dario Radečić

Autore

Dario Radečić

Senior Data Scientist con base in Croazia. Top Tech Writer con oltre 700 articoli pubblicati, per più di 10 milioni di visualizzazioni. Autore del libro Machine Learning Automation with TPOT.

Argomenti

Correlato