Perché studiare Docker e Kubernetes
Applicazioni moderne significano ambienti complessi: più servizi, linguaggi diversi, dipendenze che cambiano, ambienti di sviluppo e produzione che raramente coincidono.
Docker e i container nascono per risolvere esattamente questo problema: creare unità standardizzate che includono codice + runtime + tool necessari, in modo che l’applicazione si comporti nello stesso modo ovunque venga eseguita.
Una volta che si inizia a usare container ovunque (sviluppo, staging, produzione), emerge un nuovo problema: come gestire decine o centinaia di container, come aggiornarli, rimpiazzarli, scalarli e tenerli in salute.
Qui entra in gioco Kubernetes, un orchestratore di container pensato per:
- distribuire container su più nodi
- gestire aggiornamenti e rollback
- garantire disponibilità e ripartenza automatica
- esporre i servizi verso l’esterno e tra di loro
Docker e Kubernetes non competono: lavorano insieme. Docker (o container runtime equivalenti) gestisce il singolo container, Kubernetes gestisce insiemi di container nel tempo.
Obiettivo del percorso
Questo percorso raccoglie appunti strutturati per:
- costruire una comprensione chiara di cosa sono container e Docker
- capire perché i container sono diversi (e spesso migliori) delle virtual machine
- imparare a:
- creare immagini Docker
- eseguire, configurare e collegare container
- gestire dati e volumi
- lavorare con il networking tra container
- arrivare pronti a introdurre Kubernetes:
- concetti base (pod, deployment, service, ingress, volume, configmap, secret)
- come mappare ciò che si fa “a mano” con Docker nei concetti Kubernetes
- come ragionare su deploy, scaling e affidabilità in un cluster
L’obiettivo finale è poter usare Docker in modo sicuro e consapevole nei progetti quotidiani, e avere le basi per leggere e capire configurazioni Kubernetes reali.
Struttura del diario
Come per gli altri argomenti, ci saranno sub-posts dedicati a singoli temi, ad esempio:
- Introduzione a Docker e ai container
- Perché i container risolvono problemi reali (dev/prod, team, progetti multipli)
- Container vs virtual machine
- Installazione di Docker e primo container
- Immagini Docker e Dockerfile
- Dati, volumi e persistenza
- Networking tra container e multi-container projects
- Introduzione a Kubernetes e mapping dei concetti Docker → Kubernetes
- Dati, networking e deploy in Kubernetes
Ogni articolo è pensato per essere autonomo, ma letti in sequenza costruiscono una comprensione progressiva di Docker, container e Kubernetes.