Docker su Linux Nativo: Installazione & Hardening

📦 Docker su Linux Nativo: Installazione & Hardening

::: info Questa guida descrive l’installazione del Docker Engine su distribuzioni basate su Debian/Ubuntu e le configurazioni di sicurezza necessarie per proteggere il demone da accessi non autorizzati e prevenire il consumo eccessivo di risorse. :::

1. Installazione Professionale (Official Repo)

Non utilizziamo i pacchetti standard delle distro (spesso obsoleti), ma il repository ufficiale Docker per garantire aggiornamenti di sicurezza tempestivi.

A. Pulizia e Prerequisiti

# Rimuovi vecchie versioni se presenti
sudo apt-get remove docker docker-engine docker.io containerd runc

# Aggiorna l'indice e installa i pacchetti per HTTPS
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release

B. Configurazione Repository

# Aggiungi la chiave GPG ufficiale
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

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

C. Installazione Engine

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

2. Post-Installation Hardening

Di default, Docker richiede privilegi di root. Per una workstation di sviluppo, è necessario bilanciare sicurezza e usabilità.

Gestione Utente (Non-Root)

Aggiungi il tuo utente al gruppo docker per eseguire comandi senza sudo:

sudo usermod -aG docker $USER

Nota: Questa operazione concede privilegi equivalenti a root per quanto riguarda l’accesso al sistema tramite container. Utilizzare con consapevolezza.

Configurazione del Demone (daemon.json)

Per evitare che i log dei container saturino il disco fisso (causa n.1 di crash dei server), configuriamo la log rotation globale.

Crea o modifica /etc/docker/daemon.json:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "live-restore": true,
  "no-new-privileges": true
}
  • max-size: Limita ogni file di log a 10MB.
  • live-restore: Permette ai container di restare attivi anche se il demone Docker viene riavviato o aggiornato.

📉 Architettura del Demone (Mermaid)


3. Comandi di Diagnostica Rapida

ComandoScopo
docker infoVisualizza lo stato completo del motore e le policy attive.
docker statsMonitoraggio in tempo reale di CPU/RAM per container.
docker system dfAnalisi dell’occupazione disco (immagini, volumi, cache).
docker system pruneCleanup: Rimuove container fermi e reti inutilizzate.

💡 Note dell’Ingegnere (Critical Thinking)

  • UFW & Docker: Su Ubuntu, Docker manipola direttamente iptables, scavalcando spesso le regole del firewall UFW. Se esponi porte (es. -p 80:80), il container sarà accessibile dall’esterno anche se UFW dice il contrario.
  • Storage Driver: Assicurati che Docker stia usando overlay2 (default su kernel moderni), che è il driver più efficiente per il layering delle immagini.
  • Rootless Mode: In ambienti ad altissima sicurezza, valuta l’installazione di Docker Rootless, che permette di eseguire l’intero motore senza privilegi di sistema (richiede configurazioni aggiuntive per le porte < 1024).

Tags: #Docker #Linux #Debian #Ubuntu #Security #SysAdmin*

Last updated on Thursday, March 5, 2026
Built with Hugo
Theme Stack designed by Jimmy