Skip to main content

Capitolo 1 – Cos’è Docker

Docker è una piattaforma per creare, distribuire e eseguire container.
I container permettono di eseguire applicazioni in ambienti isolati, leggeri e portabili, senza la necessità di macchine virtuali complete.


1.1 Differenze tra Container e VM

Caratteristica VM Container
Isolamento Completo (OS separato) Processo separato, stesso OS
Peso Pesante (GB per VM) Leggero (MB per container)
Avvio Lento (minuti) Veloce (secondi)
Portabilità Limitata al hypervisor Elevata, qualsiasi host Docker
Risorse Dedicate Condivise con host

1.2 Componenti Principali di Docker

  • Docker Engine
    Servizio principale che esegue container e gestisce immagini.
  • Docker CLI
    Strumento a linea di comando per interagire con Docker.
  • Docker Daemon
    Processo in background che gestisce container e immagini.
  • Docker Hub / Registry
    Repository pubblico o privato per salvare e distribuire immagini.

1.3 Vantaggi dell’uso di Docker

  • Portabilità: stesso container su qualsiasi host con Docker.
  • Isolamento: applicazioni indipendenti tra loro.
  • Efficienza: occupa meno risorse di una VM completa.
  • Ripetibilità: stessi container identici in sviluppo, test e produzione.
  • Integrazione CI/CD: ideale per pipeline DevOps.

1.4 Caso d’uso tipico

  1. Uno sviluppatore crea un’applicazione web.
  2. Scrive un Dockerfile per definire ambiente e dipendenze.
  3. Costruisce un’immagine e la carica su Docker Hub.
  4. In produzione, il container viene eseguito senza preoccuparsi del sistema operativo host.

1.5 Conclusione

Docker permette di astrarre l’applicazione dall’infrastruttura sottostante, rendendo:

  • Sviluppo più veloce
  • Deploy più semplice
  • Gestione di ambienti coerente e sicura

Nel prossimo capitolo entreremo nel dettaglio dell’architettura di Docker, spiegando come Engine, Daemon e registri lavorano insieme.