Se usi Linux per sviluppo, automazione, home lab o semplicemente per curiosità, prima o poi incrocerai i container. E il nome che senti più spesso è Docker. Ma cos’è davvero Docker? È solo per sviluppatori? E perché tutti ne parlano? In questa guida completa, imparerai a installare Docker su qualsiasi distribuzione Linux, lanciare il tuo primo container, capire il funzionamento dietro le quinte e scoprire alternative moderne come Podman.
1. Cosa Sono i Container (e Perché Non Sono Macchine Virtuali)
Un container è un ambiente isolato in cui eseguire un’applicazione, con tutte le sue dipendenze, librerie e file di configurazione. A differenza di una macchina virtuale (VM), non include un intero sistema operativo. Usa invece il kernel di Linux con funzionalità come namespaces e cgroups per isolare processi, rete e filesystem.
Vantaggi chiave:
- Leggeri: avvio in millisecondi, non in secondi
- Portabili: “Funziona sul mio PC” → funziona ovunque
- Efficienti: condividono il kernel, quindi consumano poche risorse
Esempio pratico: puoi lanciare un server web Nginx, un database PostgreSQL e un’app Python in tre container separati, senza conflitti tra versioni o librerie.
2. Installare Docker su Linux (Ubuntu, Debian, Fedora, Arch)
Docker è disponibile per quasi tutte le distribuzioni. Ecco i comandi ufficiali aggiornati al 2025:
Ubuntu/Debian:
sudo apt update sudo apt install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Fedora/RHEL:
sudo dnf -y install dnf-plugins-core sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Arch Linux:
sudo pacman -S docker docker-compose
Dopo l’installazione, abilita e avvia il servizio:
sudo systemctl enable --now docker
Importante: per usare Docker senza sudo, aggiungi il tuo utente al gruppo docker:
sudo usermod -aG docker $USER
Poi riavvia la sessione (o esegui newgrp docker).
3. Il Primo Container: Hello World e Oltre
Verifica l’installazione con il classico test:
docker run hello-world
Questo comando scarica un’immagine minuscola da Docker Hub e stampa un messaggio. Ora prova qualcosa di utile: un server web in 10 secondi.
docker run -d -p 8080:80 --name mio-nginx nginx
Spiegazione:
-d: esegui in background (detached)-p 8080:80: collega la porta 8080 del tuo PC alla 80 del container--name: assegna un nome leggibilenginx: nome dell’immagine da Docker Hub
Apri il browser su http://localhost:8080 e vedrai la pagina di benvenuto di Nginx.
4. Comandi Essenziali per Gestire i Container
docker ps: elenco container attividocker ps -a: mostra anche quelli fermidocker stop mio-nginx: ferma un containerdocker rm mio-nginx: elimina un containerdocker images: elenco immagini scaricatedocker rmi nome-immagine: cancella un’immaginedocker logs mio-nginx: vedi i log in tempo reale
Consiglio: usa docker system prune periodicamente per pulire risorse non usate (immagini orfane, network, cache).
5. Docker Compose: Gestire Applicazioni Multicontainer
Molte app richiedono più servizi (es. web + database). Docker Compose ti permette di definire tutto in un file docker-compose.yml.
Esempio: WordPress con MySQL
version: '3.8'
services:
db:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: esempio123
MYSQL_DATABASE: wordpress
wordpress:
image: wordpress:latest
restart: always
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_PASSWORD: esempio123
Salva il file e lancia:
docker compose up -d
In pochi secondi avrai un sito WordPress funzionante su http://localhost:8000.
6. Docker Hub e Sicurezza: Cosa Scarichi?
Docker Hub è il “Play Store” dei container. Ma attenzione: chiunque può caricare immagini. Per evitare rischi:
- Prediligi immagini ufficiali (badge “Official Image”)
- Controlla le stelle e il numero di download
- Leggi il Dockerfile se disponibile
- Non usare mai
:latestin produzione: specifica sempre una versione (es.nginx:1.25)
7. Podman: L’Alternativa Senza Demone (e Senza Root)
A partire dal 2023, molti utenti Linux stanno migrando a Podman, un’alternativa compatibile con Docker ma senza il demone in background. Vantaggi:
- Nessun processo root permanente → più sicuro
- Supporto nativo a rootless → i container girano con i permessi dell’utente
- Stessa sintassi:
podman runfunziona comedocker run - Integrazione con systemd per avviare container all’avvio
Su Fedora, RHEL e openSUSE, Podman è installato di default. Su Ubuntu:
sudo apt install podman
Puoi anche usare un alias: alias docker=podman.
8. Quando Usare Docker (e Quando Evitarlo)
Usalo se:
- Sviluppi software e vuoi evitare “ma sul mio PC funziona!”
- Gestisci servizi locali (Nextcloud, Bitwarden, Home Assistant)
- Vuoi testare software senza sporcare il sistema
- Hai un server e vuoi isolare servizi
Evitalo se:
- Cerchi solo un’app desktop (es. LibreOffice)
- Hai pochissime risorse (meno di 2 GB di RAM)
- Non hai bisogno di isolamento o portabilità
Conclusione
Docker non è magia, ma uno strumento potente per rendere il tuo flusso di lavoro su Linux più pulito, ripetibile e sicuro. Non serve essere sviluppatori per trarne vantaggio: anche un utente domestico può usare container per self-hosting, backup automatizzati o semplice sperimentazione.
Inizia con un servizio semplice (es. un server web o un downloader), impara i comandi base, e presto non potrai più farne a meno. E se la sicurezza è una priorità, dai un’occhiata a Podman: il futuro dei container su Linux è già qui.
Pc Facile !