Docker: Dietro le Quinte

Docker: Dietro le Quinte

 

Cosa Imparerai

Nota personale

Questo è un corso a cui tengo particolarmente. Usavo già Docker da tempo quando ho scoperto i primi articoli che spiegavano le tecnologie alla base dell'isolamento in modo comprensibile e verificabile da shell. È stata un'illuminazione: finalmente capivo cosa succedeva davvero. Ho voluto tradurre quell'esperienza in un corso, e ha funzionato.

Obiettivo

Capire cosa succede veramente quando eseguiamo docker build e docker run. Non un tutorial su come usare Docker (ce ne sono già tanti), ma un percorso per smontarlo e rimontarlo — come faresti con un orologio meccanico per capirne il funzionamento.

Metodo

Hands-on con esperimenti pratici su macchina Linux. Ogni concetto viene prima "smontato" a livello di kernel, poi ricostruito per capire come Docker lo utilizza.

Argomenti

 

Parte 1 — Il filesystem

  • Filesystem in un singolo file e mount --bind
  • Overlay filesystem: l'idea dei fogli di acetato sovrapposti
  • Come Docker usa i layer per efficienza e condivisione
  • Analisi pratica dei layer con docker history e dive

Parte 2 — Creare immagini

  • Dockerfile: la ricetta per le immagini
  • RUN, COPY e l'impatto sui layer
  • CMD vs ENTRYPOINT: quando usare quale
  • Pattern per build efficienti

Parte 3 — Isolamento con i Namespace

  • I 7 namespace del kernel Linux (mnt, pid, net, ipc, uts, user, cgroup)
  • Esperimenti pratici con unshare e nsenter
  • fork vs clone: come nascono i processi isolati

Parte 4 — Controllo risorse e runtime

  • cgroup: limitare CPU, memoria, I/O
  • Volume e persistenza dei dati
  • Da unshare a runc: il percorso completo

Parte 5 — Networking essenziale

  • Bridge network: come i container si parlano
  • Esporre porte: cosa succede davvero con -p
  • Network in Compose: isolamento e comunicazione

Parte 6 — Compose e deploy locale

  • Cosa fa docker-compose up sotto il cofano
  • Volumi, network, dipendenze
  • Reverse proxy con Traefik: routing e HTTPS automatico

Parte 7 — Registry e distribuzione

  • Anatomia di un'immagine: manifest, layer, digest
  • Registry privati: quando e perché
  • Tagging e versionamento

Parte 8 — Deploy di immagini

  • Generazione immagini nelle pipeline GitHub, Gitlab, Bitbucket
  • Countinuous deployment

A Chi è Rivolto

  • Chi usa già Docker ma non ha chiaro cosa succede sotto il cofano
  • Chi vuole capire la differenza tra virtualizzazione e isolamento dei processi
  • Chi è convinto di conoscere Docker ma non sa cosa siano i namespace del kernel, i cgroup, un filesystem a strati
  • Chi non si spaventa ad usare la riga di comando

Interessato a questo corso?

Contattami per maggiori informazioni o per prenotare una sessione.

Vai ai Contatti →