Vai al contenuto principale

Installa Docker su Debian: guida completa all’installazione

Questa guida copre quattro approcci d’installazione, dal repository ufficiale di Docker all’installazione manuale dei pacchetti, più la configurazione post‑installazione essenziale per deployment enterprise. Imparerai a mettere in sicurezza l’ambiente Docker, risolvere i problemi comuni e mantenere una configurazione pronta per la produzione.
· 15 min leggi

Scopri con l'IA

Installare Docker su Debian non dovrebbe significare indovinare quale metodo non manderà in crisi il sistema.

La maggior parte delle guide propone più opzioni d’installazione senza spiegare quando usare ciascuna. Finisci con pacchetti obsoleti dal repository di Debian o, peggio, con errori di permessi che ti bloccano dai tuoi stessi container. Risultato? Passi ore a fare troubleshooting invece di distribuire applicazioni.

Il ciclo di rilascio prevedibile di Debian e la sua stabilità granitica lo rendono perfetto per deployment Docker in produzione. Ottieni prestazioni dei container costanti senza aggiornamenti imprevisti del sistema che rompano la configurazione. In teoria, non dovresti avere problemi dopo la parte più delicata: l’installazione.

In questo tutorial ti guiderò attraverso quattro metodi di installazione, hardening di sicurezza essenziale, configurazione dello storage e passaggi di troubleshooting per far funzionare Docker in modo affidabile su Debian.

Completamente nuovo a Docker? Inizia dalle basi di Docker prima di passare ai passaggi d’installazione.

Prerequisiti di sistema

Docker gira sulla maggior parte dei sistemi Debian moderni, ma prima dovrai spuntare alcune caselle. In questa sezione ti mostro i requisiti esatti di sistema prima di iniziare l’installazione.

Debian 10 (Buster) o più recente è richiesto per le versioni attuali di Docker. Rilasci più vecchi come Debian 9 non funzionano con build recenti di Docker Engine. La versione del kernel dovrebbe essere 3.10 o superiore: la maggior parte delle installazioni Debian degli ultimi anni soddisfa automaticamente questo requisito.

Ti servono accesso root o privilegi sudo per installare i pacchetti Docker e configurare il sistema. Docker richiede anche questi pacchetti base: apt-transport-https, ca-certificates, curl e gnupg. La maggior parte dei sistemi Debian li ha già installati, ma verificherai questo passaggio più avanti.

I requisiti hardware sono minimi:

  • 2GB di RAM per gestire carichi base dei container, anche se 4GB o più funzionano meglio per ambienti di sviluppo
  • 10GB di spazio libero su disco è il minimo per immagini Docker e dati dei container. Le configurazioni di produzione dovrebbero prevederne molto di più.

Se usi l’ambiente desktop GNOME, assicurati di avere installato il pacchetto gnome-terminal. Alcuni strumenti di gestione Docker lo richiedono per le sessioni interattive dei container.

Rimuovi eventuali vecchie installazioni di Docker prima di iniziare. Pacchetti legacy come docker, docker.io o docker-engine possono entrare in conflitto con l’attuale Docker Engine. Esegui questo comando per pulire le versioni precedenti:

sudo apt remove docker docker-engine docker.io containerd runc

Il firewall e la configurazione di rete possono influire sul networking dei container. Docker crea proprie interfacce di rete e regole iptables. Se usi UFW o regole firewall personalizzate, potresti doverle adeguare dopo l’installazione per consentire il traffico dei container.

Verifica questi requisiti ora: ti farà risparmiare tempo di troubleshooting più tardi.

Metodi di installazione

Hai quattro modi per installare Docker su Debian, ognuno con compromessi diversi. Ti aiuterò a scegliere il metodo più adatto al tuo ambiente e ai requisiti di sicurezza.

Cerchi invece le istruzioni per Ubuntu? Abbiamo una guida completa passo passo per installare Docker su Ubuntu.

Metodo 1: Repository ufficiale di Docker (consigliato)

Questo metodo ti fornisce l’ultima versione di Docker con aggiornamenti di sicurezza regolari.

Il repository ufficiale di Docker ha sempre le release stabili più recenti e ricevi aggiornamenti automatici tramite il gestore pacchetti. Non rimarrai bloccato con versioni obsolete che mancano di patch di sicurezza importanti o nuove funzionalità.

Inizia aggiornando il sistema e installando i pacchetti richiesti da Docker:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release

Poi aggiungi la chiave GPG ufficiale di Docker per verificare l’autenticità dei pacchetti:

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

Configura il repository aggiungendolo alla lista delle sorgenti:

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

Infine, installa Docker Engine, la CLI e Compose:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Questo ti dà tutto il necessario per deployment Docker in produzione.

Metodo 2: Repository predefinito di Debian

Questo approccio installa Docker con un solo comando, ma otterrai una versione più vecchia.

Il repository predefinito di Debian rende l’installazione semplice: esegui sudo apt install docker.io. Ma c’è un problema: spesso otterrai versioni di Docker indietro di mesi o anni rispetto al rilascio corrente.

sudo apt update
sudo apt install docker.io

Questo metodo va bene per test di base o quando ti serve una versione specifica più vecchia per compatibilità. Ma perderai aggiornamenti di sicurezza, miglioramenti delle prestazioni e nuove funzionalità delle release recenti.

Usa questo metodo solo quando il repository ufficiale non è un’opzione.

Metodo 3: Installazione manuale dei pacchetti DEB

Ti mostro come scaricare e installare i pacchetti direttamente quando non puoi accedere ai repository.

Questo metodo funziona per sistemi air‑gapped, reti aziendali con accesso internet limitato, o quando devi installare la stessa versione di Docker su più macchine senza scaricare ogni volta.

Scarica i pacchetti DEB dal sito di Docker:

  1. Vai su https://download.docker.com/linux/debian/dists/

  2. Scegli la tua versione di Debian (bullseye, bookworm, ecc.)

  3. Vai su pool/stable/amd64/

  4. Scarica questi pacchetti: docker-ce_*.deb, docker-ce-cli_*.deb e containerd.io_*.deb

Installa i pacchetti in quest’ordine:

sudo dpkg -i containerd.io_*.deb
sudo dpkg -i docker-ce-cli_*.deb
sudo dpkg -i docker-ce_*.deb

Se ottieni errori di dipendenze, esegui sudo apt-get install -f per risolverli.

Questo metodo richiede più lavoro manuale per gli aggiornamenti, ma ti dà il controllo completo sulla versione da installare.

Metodo 4: Script di convenienza

L’ultimo metodo che tratto offre un’installazione rapida per ambienti di test, ma dovresti prima verificare lo script.

Docker fornisce script d’installazione che rilevano il tuo sistema e installano Docker automaticamente. Sono comodi per avviare velocemente ambienti di test o quando devi configurare Docker su più sistemi.

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

Rivedi sempre lo script prima di eseguirlo:

cat get-docker.sh

Cerca qualcosa di sospetto o inaspettato. Lo script modificherà la configurazione del sistema, quindi è bene sapere cosa fa.

Esegui lo script dopo averlo verificato:

sudo sh get-docker.sh

Non usare gli script di convenienza in produzione. Sono pensati per una configurazione rapida, non per deployment sicuri e riproducibili. Per i sistemi critici resta sul metodo del repository ufficiale.

Consiglio di scegliere il metodo del repository ufficiale a meno che tu non abbia vincoli specifici che richiedano un approccio diverso.

Verifica dell’installazione

L’installazione è solo il primo passo: devi confermare che Docker funzioni davvero prima di distribuire qualsiasi cosa. Questi test rapidi ti diranno se la tua configurazione Docker è pronta per carichi reali.

Controlla la versione di Docker per confermare che l’installazione sia completata:

docker --version

Dovresti vedere un output tipo Docker version xx.x.x, build x. Se ottieni un errore "command not found", Docker non è stato installato correttamente o non è nel tuo PATH.

Ottieni informazioni dettagliate sulla build per vedere quali componenti stanno girando:

docker version

Questo mostra versioni separate di client e server, più dettagli sull’architettura. La sezione server conferma che il demone Docker è in esecuzione ed è accessibile.

Esegui un container di test per validare che tutto funzioni end-to-end:

docker run hello-world

Docker scaricherà l’immagine hello-world ed eseguirà il container. Se tutto funziona correttamente, vedrai un messaggio che spiega come funzionano i container Docker. Questo test conferma che Docker può scaricare immagini, creare container ed eseguire comandi.

Puoi verificare che Docker Compose sia installato e funzionante:

docker compose version

Dovresti vedere un output tipo Docker Compose version vX.xx.x. Nota che le installazioni più recenti usano docker compose (con spazio) invece del vecchio comando docker-compose.

Se tutti questi comandi funzionano senza errori, la tua installazione Docker è pronta per l’uso in produzione.

Pronto a eseguire il tuo primo vero container? Scopri passo passo come eseguire le immagini Docker.

Configurazione post‑installazione

Docker funziona subito, ma vorrai configurare alcune cose per l’uso quotidiano. In questa sezione tratto la gestione del servizio e i permessi utente che rendono Docker più comodo e sicuro.

Gestione del servizio

Puoi controllare quando Docker gira con questi comandi systemd:

sudo systemctl start docker    # Avvia Docker
sudo systemctl stop docker     # Ferma Docker
sudo systemctl restart docker  # Riavvia il servizio Docker

Per abilitare l’avvio automatico di Docker all’avvio del sistema, esegui:

sudo systemctl enable docker

Questo assicura che Docker giri a ogni riavvio del server, come desiderabile nei sistemi di produzione.

Se ti serve verificare se Docker è in esecuzione e vederne lo stato corrente, esegui:

sudo systemctl status docker

Vedrai se il servizio è attivo, da quanto tempo è in esecuzione e gli ultimi messaggi di log. Se Docker non funziona, questo comando di solito mostra il motivo.

Per risolvere problemi del servizio, controlla i log:

sudo journalctl -u docker.service

Questo mostra log dettagliati del demone Docker che aiutano a diagnosticare problemi di avvio, errori di permessi o di configurazione.

Accesso utente non root

Se vuoi aggiungere il tuo utente al gruppo docker per eseguire comandi Docker senza sudo:

sudo usermod -aG docker $USER

Questo aggiunge l’utente corrente al gruppo docker, dandogli i permessi per comunicare con il demone Docker.

Dovrai poi disconnetterti e rientrare perché la modifica abbia effetto:

logout

In alternativa, riavvia la sessione del terminale. Puoi anche eseguire newgrp docker per attivare il gruppo nella sessione corrente senza disconnetterti.

Infine, per testare l’accesso non root, esegui questo comando Docker:

docker run hello-world

Se funziona senza sudo, sei a posto.

Ecco però il compromesso in termini di sicurezza: gli utenti nel gruppo docker hanno accesso equivalente a root sul sistema. Possono montare directory dell’host, accedere a file sensibili e potenzialmente evadere dai container per compromettere l’host.

Aggiungi solo utenti fidati al gruppo docker e non farlo mai su sistemi condivisi in cui non controlli tutti gli utenti.

Configura queste impostazioni una volta e lavorare con Docker ogni giorno diventa molto più semplice.

Configurazione del driver di storage

Il driver di storage di Docker gestisce come immagini e dati dei container vengono archiviati sul sistema. La maggior parte degli utenti non deve mai cambiarlo, ma capire le opzioni aiuta a ottimizzare le prestazioni per carichi specifici.

Docker seleziona automaticamente il driver di storage migliore per il tuo sistema durante l’installazione. Su Debian, di solito è overlay2, che offre ottime prestazioni e stabilità nella maggior parte dei casi.

Controlla il driver di storage attuale con questo comando:

docker info | grep "Storage Driver"

Il driver overlay2 funziona bene perché:

  • Gestisce velocemente le operazioni copy‑on‑write quando i container modificano i file
  • Condivide i layer tra immagini per risparmiare spazio su disco
  • Supporta tutte le funzionalità di Docker senza problemi di compatibilità
  • Funziona in modo affidabile su diversi tipi di filesystem

Potresti aver bisogno di un driver diverso se esegui carichi specializzati o hai requisiti specifici di filesystem. 

Per esempio, alcuni sistemi di storage enterprise funzionano meglio con il driver devicemapper, oppure potresti aver bisogno di vfs per fare debugging di problemi del filesystem dei container.

Puoi cambiare il driver di storage modificando la configurazione del demone di Docker:

sudo nano /etc/docker/daemon.json

Qui aggiungi o modifica l’impostazione storage-driver:

{
  "storage-driver": "devicemapper"
}

Ricorda infine di riavviare Docker per applicare la modifica:

sudo systemctl restart docker

Attenzione: cambiare driver di storage rende inaccessibili i container e le immagini esistenti. Esegui prima il backup dei dati importanti o esporta i container che vuoi conservare.

Ora puoi testare il nuovo driver scaricando un’immagine ed eseguendo un container:

docker pull hello-world
docker run hello-world

In poche parole, resta con overlay2 a meno che tu non abbia requisiti specifici che impongano un driver diverso.

Hardening della sicurezza

Le installazioni Docker predefinite vanno bene per lo sviluppo, ma gli ambienti di produzione richiedono ulteriori livelli di sicurezza. Queste configurazioni proteggono l’host da evasioni dei container e attacchi di esaurimento risorse.

Integrazione SELinux/AppArmor

I controlli di accesso obbligatori aggiungono un livello di sicurezza che limita ciò che i container possono fare, anche se compromessi. Senza questi controlli, un container che gira come root può potenzialmente accedere a risorse dell’host che non dovrebbe toccare.

Puoi abilitare AppArmor per Docker, il framework di sicurezza predefinito su Debian, eseguendo questi comandi:

sudo apt install apparmor-utils
sudo systemctl enable apparmor
sudo systemctl start apparmor

Una volta che AppArmor è in esecuzione, carica il profilo di sicurezza di Docker:

sudo apparmor_parser -r /etc/apparmor.d/docker

Ora puoi eseguire container con la protezione AppArmor abilitata:

docker run --security-opt apparmor=docker-default nginx

Il profilo docker-default limita capacità del container come il montaggio di filesystem, l’accesso a interfacce di rete raw e il caricamento di moduli del kernel.

Per sistemi SELinux (se lo usi al posto di AppArmor), abilita prima la gestione dei container:

sudo setsebool -P container_manage_cgroup on

Poi esegui i container con etichette SELinux:

docker run --security-opt label=type:container_t nginx

Questi controlli bloccano molte tecniche comuni di evasione dai container e limitano i danni di container compromessi.

Configurazione del demone

Puoi (e dovresti) personalizzare le impostazioni del demone Docker per ridurre la superficie d’attacco e migliorare la postura di sicurezza. Crea o modifica il file /etc/docker/daemon.json:

{
  "live-restore": true,
  "userland-proxy": false,
  "no-new-privileges": true,
  "icc": false,
  "disable-legacy-registry": true
}

Ecco cosa fa ogni impostazione:

  • live-restore: true mantiene i container in esecuzione se il demone Docker si arresta in modo anomalo

  • userland-proxy: false usa direttamente iptables invece del proxy in userland per prestazioni migliori

  • no-new-privileges: true impedisce ai container di acquisire nuovi privilegi

  • icc: false disabilita la comunicazione tra container per impostazione predefinita disable-legacy-registry: true blocca l’accesso a protocolli di registry vecchi e insicuri

Dopo aver apportato le modifiche, riavvia Docker per applicarle:

sudo systemctl restart docker

Dovresti anche eseguire i container come utenti non root quando possibile:

docker run --user 1000:1000 nginx

Questo limita ciò che i container compromessi possono fare al tuo sistema.

Limiti di risorse con control group (cgroups)

I container senza limiti di risorse possono consumare tutta la CPU, la memoria e l’I/O disponibili, mandando giù l’intero host. I control group (cgroups) evitano questo imponendo limiti rigidi sull’uso delle risorse.

Inizia con i limiti di memoria per evitare che i container usino RAM eccessiva:

docker run --memory=512m nginx

Puoi anche limitare l’uso della CPU per impedire a un container di monopolizzare la potenza di calcolo:

docker run --cpus=1.5 nginx

Per sistemi con I/O su disco elevato, controlla le velocità di lettura/scrittura:

docker run --device-read-bps /dev/sda:1mb nginx

Puoi anche combinare più limiti per un controllo completo delle risorse:

docker run \
  --memory=1g \
  --cpus=2 \
  --pids-limit=100 \
  nginx

Per limiti coerenti su tutti i container, configura i default nel tuo daemon.json:

{
  "default-ulimits": {
    "nofile": {
      "Hard": 64000,
      "Name": "nofile",
      "Soft": 64000
    }
  }
}

Questi limiti prevengono attacchi di esaurimento risorse e garantiscono una condivisione equa tra i container.

Configura queste misure di sicurezza una volta e il tuo ambiente Docker diventa molto più difficile da compromettere.

Devi padroneggiare i comandi Docker per la gestione quotidiana? Questi 18 comandi Docker essenziali ti renderanno produttivo.

Risoluzione dei problemi comuni

Anche con un’installazione corretta, Docker può incappare in intoppi che impediscono ai container di funzionare. Ecco i problemi più comuni e come risolverli rapidamente.

Errori di permessi

La maggior parte dei problemi di permessi in Docker dipende dal fatto che il tuo utente non ha accesso al file socket di Docker. Quando vedi Got permission denied while trying to connect to the Docker daemon socket, significa che non sei ancora nel gruppo docker.

Succede perché Docker gira come root, ma crea un socket accessibile ai membri del gruppo docker. Aggiungiti al gruppo:

sudo usermod -aG docker $USER

Devi disconnetterti e rientrare perché la modifica abbia effetto. Se non vuoi farlo ora, puoi attivare il gruppo nella sessione corrente:

newgrp docker

Gli errori di permessi sui file all’interno dei container sono diversi ma altrettanto comuni. Accadono quando il processo del container non può leggere o scrivere file montati dall’host. Il container potrebbe girare con un ID utente diverso da quello proprietario dei tuoi file.

Controlla quale utente è proprietario dei file:

ls -la /path/to/your/files

La maggior parte dei container Docker gira come ID utente 1000 per impostazione predefinita. Se i file sono di root o di un altro utente, cambia la proprietà:

sudo chown -R 1000:1000 /path/to/your/files

Se usi SELinux (invece di AppArmor), potresti vedere negazioni di permessi diverse che compaiono nei log di audit. Queste sono più complesse perché SELinux controlla l’accesso in base ai contesti di sicurezza, non solo agli ID utente.

Cerca violazioni di accesso recenti:

sudo ausearch -m avc -ts recent

Correggi i contesti SELinux abilitando la gestione dei container e ripristinando le etichette corrette sui volumi Docker:

sudo setsebool -P container_manage_cgroup on
sudo restorecon -R /path/to/your/volume

Errori del servizio

Quando Docker non si avvia o continua a crashare, devi capire cosa fallisce prima di poterlo risolvere. Lo stato del servizio systemd ti dà una panoramica rapida:

sudo systemctl status docker

Questo mostra se Docker è in esecuzione e eventuali messaggi di errore recenti. Ma per un troubleshooting dettagliato, è meglio osservare i log in tempo reale mentre Docker prova ad avviarsi:

sudo journalctl -u docker.service -f

Un errore di avvio comune si verifica quando Docker non si è arrestato correttamente. Vedrai un errore tipo "failed to start daemon: pid file found, ensure docker is not running." Significa che c’è un file di processo residuo che confonde lo script di avvio.

Rimuovi il file obsoleto e prova a riavviare:

sudo rm /var/run/docker.pid
sudo systemctl start docker

Problemi di storage sono un’altra causa frequente di errori del demone. Docker archivia tutti i suoi dati in /var/lib/docker e, se questa directory esaurisce lo spazio o si corrompe, Docker non può avviarsi correttamente.

Controlla quanto spazio è disponibile:

df -h /var/lib/docker

Se lo spazio è poco, pulisci container e immagini vecchi che non stai usando:

docker system prune -a

Conflitti di rete possono anche impedire l’avvio di Docker. Succede quando la rete bridge predefinita di Docker (di solito 172.17.0.0/16) va in conflitto con la tua configurazione di rete esistente. Vedrai errori su intervalli di indirizzi non disponibili.

Risolvi configurando un IP bridge personalizzato che non vada in conflitto con la tua rete. Modifica /etc/docker/daemon.json:

{
  "bip": "192.168.1.1/24"
}

Dopo la modifica, riavvia Docker per usare la nuova configurazione di rete:

sudo systemctl restart docker

Problemi con kernel obsoleto

Docker dipende dalle funzionalità del kernel Linux per containerizzazione, networking e sicurezza. Se il kernel è troppo vecchio, avrai problemi che non si possono risolvere senza aggiornare.

Controlla la versione del kernel in uso con questo comando:

uname -r

Docker richiede almeno il kernel 3.10 per la funzionalità di base, ma per la produzione è meglio 4.0 o più recente. Qualsiasi versione precedente alla 3.10 semplicemente non funziona con le versioni moderne di Docker.

Aggiornare il kernel su Debian è semplice: installa il pacchetto del kernel più recente:

sudo apt update
sudo apt install linux-image-amd64

Il nuovo kernel non sarà attivo finché non riavvii il sistema:

sudo reboot

A volte il kernel è abbastanza recente, ma alcuni moduli non sono caricati. Docker ha bisogno di moduli specifici per funzionalità di rete e containerizzazione. Vedrai errori su interfacce di rete non disponibili o container che non si avviano correttamente.

Carica manualmente i moduli essenziali:

sudo modprobe bridge
sudo modprobe ip_tables
sudo modprobe iptable_nat

Questi moduli dovrebbero caricarsi automaticamente, ma se non succede, rendili permanenti aggiungendoli alla configurazione di sistema:

echo "bridge" | sudo tee -a /etc/modules
echo "ip_tables" | sudo tee -a /etc/modules  
echo "iptable_nat" | sudo tee -a /etc/modules

Anche con un kernel recente, potresti incontrare errori del runtime dei container che dicono "operation not supported". Di solito significa che il kernel è stato compilato senza alcune funzionalità che Docker si aspetta. Purtroppo non c’è una soluzione alternativa per funzionalità del kernel mancanti: serve un kernel configurato correttamente.

La maggior parte dei problemi d’installazione di Docker ricade in tre aree: permessi utente, configurazione del servizio o compatibilità del kernel. Risolvi la causa alla radice invece di aggirare i sintomi e il tuo ambiente Docker sarà molto più stabile.

Lavori con database in container? La configurazione di PostgreSQL in Docker è più semplice di quanto pensi.

Disinstallazione di Docker

A volte hai bisogno di rimuovere completamente Docker dal sistema, che tu stia passando a un runtime di container diverso o ripartendo da zero dopo problemi di configurazione. 

Questo processo va oltre la semplice rimozione dei pacchetti: vorrai anche pulire dati e modifiche di sistema.

Inizia rimuovendo tutti i pacchetti Docker dal sistema. Il comando esatto dipende da come hai installato Docker in origine.

Se hai installato dal repository ufficiale di Docker:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin

Se hai installato dal repository predefinito di Debian:

sudo apt purge docker.io docker-compose

Questo rimuove i pacchetti ma lascia i file di configurazione e le dipendenze che altri pacchetti potrebbero ancora usare. Per rimuovere anche quelli:

sudo apt autoremove --purge

Poi, elimina la directory dati di Docker se vuoi rimuovere tutte le immagini, i container e i volumi. Questo passaggio è opzionale ma consigliato per una pulizia completa.

Docker memorizza tutto in /var/lib/docker per impostazione predefinita. Rimuovere questa directory elimina definitivamente tutti i container, le immagini, le reti e i volumi:

sudo rm -rf /var/lib/docker

Dovresti anche rimuovere la directory di configurazione di Docker:

sudo rm -rf /etc/docker

Continua pulendo gruppi e utenti di sistema creati da Docker durante l’installazione. Docker aggiunge un gruppo docker al sistema e potrebbe aver modificato i permessi utente.

Rimuovi il gruppo docker:

sudo groupdel docker

Se hai aggiunto utenti al gruppo docker, la loro appartenenza verrà pulita automaticamente quando elimini il gruppo. Puoi anche rimuovere manualmente singoli utenti dal gruppo prima di eliminarlo:

sudo gpasswd -d username docker

Quindi, rimuovi i file di servizio systemd e i file socket di Docker:

sudo rm -f /lib/systemd/system/docker.service
sudo rm -f /lib/systemd/system/docker.socket
sudo systemctl daemon-reload

Infine, controlla se restano processi Docker ancora in esecuzione:

ps aux | grep docker

Se ne trovi, fermali manualmente:

sudo pkill -f docker

Dopo questi passaggi, Docker dovrebbe essere completamente rimosso dal sistema senza file o configurazioni residue.

Valuti alternative a Docker? Esplora altre piattaforme di containerizzazione prima di decidere.

Conclusione e best practice

Ora hai Docker in esecuzione su Debian, ma l’installazione è solo l’inizio. Il modo in cui configuri e mantieni il tuo ambiente Docker determina se avrai un’esperienza di produzione fluida o se passerai le notti a fare troubleshooting dei container.

Crei container multipiattaforma per architetture diverse? Docker Buildx semplifica le build cross‑platform.

Scegli il metodo d’installazione in base ai tuoi vincoli. Il repository ufficiale di Docker è la scelta migliore per la maggior parte degli ambienti di produzione perché ottieni le ultime funzionalità e patch di sicurezza. Ma reti air‑gapped o requisiti di coerenza di versione possono richiedere l’installazione manuale dei DEB.

Metti subito in sicurezza il tuo ambiente Docker. Abilita AppArmor o SELinux per controlli di accesso obbligatori, configura impostazioni restrittive del demone e usa i cgroups per limitare le risorse dei container. Mantieni Docker aggiornato con update di sicurezza automatici, ma testali prima in staging.

Usa Docker Compose per applicazioni multi‑container. Invece di gestire complessi comandi docker run, definisci lo stack applicativo in YAML.

Monitora l’uso del disco e pulisci regolarmente. Esegui docker system prune per rimuovere le immagini inutilizzate e imposta la rotazione dei log per evitare che i container riempiano il disco.

Quando ti serve più dettaglio, la documentazione ufficiale copre argomenti avanzati che questa guida non tratta. Consulta la documentazione Docker per approfondimenti su networking, storage driver e orchestration. La documentazione del pacchetto Debian Docker spiega le configurazioni specifiche del pacchetto e i problemi noti.

Docker su Debian ti offre una piattaforma stabile e potente per applicazioni containerizzate, ma solo se lo configuri con attenzione e lo mantieni con costanza.

Vuoi saperne di più su Docker, la containerizzazione e il suo impiego in data science e machine learning? Questi corsi DataCamp sono il passo successivo ideale:

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.

FAQs

Qual è il modo migliore per installare Docker su Debian per l’uso in produzione?

Il metodo del repository ufficiale di Docker è la scelta migliore per gli ambienti di produzione perché fornisce le ultime release stabili con aggiornamenti di sicurezza regolari. Questo metodo assicura di ottenere tutte le funzionalità più recenti e le patch critiche che potrebbero non essere disponibili nei repository predefiniti di Debian. Inoltre, beneficerai degli aggiornamenti automatici tramite il gestore pacchetti, mantenendo la tua installazione di Docker sicura senza interventi manuali.

Devo preoccuparmi della sicurezza quando eseguo Docker su Debian?

Sì, la sicurezza di Docker richiede una configurazione attenta oltre l’installazione di base. I container condividono il kernel dell’host, quindi un container compromesso potrebbe potenzialmente accedere a risorse dell’host se non correttamente isolato. Dovresti abilitare AppArmor o SELinux per controlli di accesso obbligatori, configurare limiti di risorse con i cgroups ed eseguire i container come utenti non root quando possibile. Inoltre, mantieni Docker aggiornato ed evita di aggiungere utenti al gruppo docker se non strettamente necessario, poiché ciò concede accesso al sistema equivalente a root.

Posso eseguire Docker su versioni più vecchie di Debian?

Docker richiede Debian 10 (Buster) o più recente per funzionare con le versioni attuali di Docker Engine. I rilasci più vecchi come Debian 9 mancano delle funzionalità del kernel e delle dipendenze dei pacchetti necessarie a Docker moderno. Se sei bloccato su una versione Debian più vecchia, dovrai prima aggiornare il sistema, perché non esiste una soluzione affidabile per le funzionalità del kernel mancanti da cui Docker dipende per containerizzazione e networking.

Perché Docker non si avvia dopo l’installazione e come risolvo i problemi del demone?

I malfunzionamenti del demone Docker derivano di solito da tre cause principali: problemi di storage, conflitti di rete o file di processo residui da installazioni precedenti. Verifica che /var/lib/docker abbia spazio su disco sufficiente usando df -h /var/lib/docker e, se serve, pulisci con docker system prune -a. Per i conflitti di rete, l’IP della bridge predefinita di Docker (172.17.0.0/16) può scontrarsi con la tua rete esistente: configura un IP bridge personalizzato in /etc/docker/daemon.json. Se vedi errori "pid file found", rimuovi il file obsoleto con sudo rm /var/run/docker.pid e riavvia il servizio.

Come rimuovo correttamente Docker e tutti i suoi dati dal mio sistema Debian?

La rimozione completa di Docker richiede più della semplice disinstallazione dei pacchetti: devi pulire directory dati, gruppi di sistema e file di servizio. Inizia eliminando i pacchetti con sudo apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin, poi rimuovi la directory dei dati con sudo rm -rf /var/lib/docker (elimina definitivamente tutti i container e le immagini). Cancella il gruppo docker con sudo groupdel docker, rimuovi i file di servizio systemd e verifica eventuali processi rimasti con ps aux | grep docker. Così garantisci una pulizia completa se devi reinstallare o passare a un altro runtime di container.

Argomenti

Correlato