8.0 KiB
Guida per Studenti - Corso Laboratori Cloud
Benvenuto nel Corso Laboratori Cloud. Questa guida ti spiega come usare al meglio il corso di simulazione pratica dei servizi cloud con Docker locale.
Cosa e questo corso?
Questo corso ti insegna i concetti fondamentali del cloud computing (IAM, Networking, Compute, Storage, Database) attraverso laboratori pratici. Invece di usare account cloud costosi, usiamo Docker sul tuo computer per simulare i servizi AWS/Azure/GCP.
Ogni laboratorio ti guida passo-passo nella creazione di infrastrutture locali che si comportano come i servizi cloud reali.
Prerequisiti
Prima di iniziare, assicurati di avere:
- VM Linux Debian (es. Debian 13) con Docker Engine >= 24.0 installato
- Docker Compose V2 (usa
docker compose, nondocker-compose) - Strumenti di rete: netcat, curl, iproute2
Installazione VM e Docker
- Installa una VM con Debian 13 (o versione recente)
- Installa Docker nella VM:
wget -O install-docker.sh https://get.docker.com/
chmod +x ./install-docker.sh
./install-docker.sh
sudo usermod -aG docker $USER
# Fai logout e login per applicare i cambiamenti
Verifica dell'ambiente
- Apri un terminale nella tua VM Debian
- Clona la repository:
git clone https://gitea.lab.home.lucasacchi.net/lucasacchi/laboratori-cloud
cd laboratori-cloud
- Verifica che tutto funzioni:
./scripts/check-env.sh
Se tutti i controlli passano, sei pronto.
Come seguire il corso
1. Struttura del corso
Il corso ha 5 laboratori progressivi:
- Lab 01: IAM & Sicurezza - Utenti, permessi, sicurezza container
- Lab 02: Network & VPC - Reti isolate, simulazione VPC/Subnets
- Lab 03: Compute & EC2 - Limiti risorse, healthchecks, simulazione EC2
- Lab 04: Storage & S3 - Volumi, MinIO come S3 locale
- Lab 05: Database & RDS - Database persistente, simulazione RDS
2. Come fare un laboratorio
Ogni laboratorio ha la stessa struttura:
labs/lab-XX-nome/
|-- README.md # Punto di ingresso del lab
|-- tutorial/ # Guida passo-passo (leggi prima questo)
|-- how-to-guides/ # Procedure specifiche per task particolari
|-- reference/ # Documentazione tecnica completa
|-- explanation/ # Spiegazione dei paralleli cloud/locale
|-- docker-compose.yml # Configurazione infrastruttura
`-- tests/
`-- 99-final-verification.sh
Ordine consigliato:
- Leggi
README.mddel lab - Segui l'
Ordine Consigliatoindicato nel README - Esegui i comandi nel tuo terminale
- Quando arrivi alla fine, verifica con lo script finale
3. Workflow tipico per un laboratorio
- Vai nella cartella del lab:
cd labs/lab-01-iam
- Leggi prima
README.mddel lab:
- Ti dice in che ordine leggere i tutorial
- Ti dice quando avviare
docker compose - Ti dice se serve anche
--build
- Leggi il tutorial (inizia da
01-*.md):
- Segui ogni passo attentamente
- Non saltare sezioni
- Pratica ogni comando nel tuo terminale
- Avvia i servizi solo quando README o tutorial te lo chiedono:
- In molti lab basta
docker compose up -d - In alcuni casi puo essere richiesto
docker compose up -d --build - In
lab-01-iamil compose serve soprattutto nella parte finale
- Prima di iniziare un nuovo lab, prepara l'ambiente del corso:
./scripts/prepare-lab.sh --dry-run
./scripts/prepare-lab.sh
Questo script pulisce solo le risorse create dai laboratori cloud e aiuta a evitare conflitti di porte tra lab consecutivi.
- Verifica il completamento dalla root del lab:
bash tests/99-final-verification.sh
- Se tutto e OK, passa al laboratorio successivo
Come verificare che stai facendo bene
Script di verifica finale
Ogni laboratorio ha uno script 99-final-verification.sh che controlla:
- Configurazioni corrette
- Requisiti di sicurezza del lab
- Funzionalita dei servizi
- Compliance con i requisiti tecnici
Esegui sempre questo script alla fine di ogni laboratorio, dalla cartella del lab.
Cosa fare se la verifica fallisce
- Leggi il messaggio di errore
- Controlla l'output per capire cosa non va
- Riguarda il tutorial per il passo problematico
- Riprova la configurazione
- Se hai ancora problemi, consulta:
- How-to guides per procedure specifiche
- Troubleshooting nel tutorial
- Reference per sintassi tecnica
Sicurezza e best practices
Questo corso segue principi di sicurezza rigorosi:
- Processi di servizio non privilegiati: dove previsto, il processo principale del servizio non deve girare come root
- Isolamento rete: reti private non esposte sull'host
- Limiti risorse: ogni container ha limiti CPU/memoria
- Persistenza: i dati sopravvivono ai riavvii
Nota pratica: una shell aperta con docker exec puo mostrarti un utente diverso dal processo principale del servizio. Se il tutorial ti fa controllare l'utente effettivo del servizio, segui sempre il metodo documentato nel lab.
Rispetta sempre questi principi nei tuoi progetti reali.
Pulizia tra laboratori
Per evitare conflitti tra laboratori:
# Dalla root del progetto
./scripts/prepare-lab.sh --dry-run
./scripts/prepare-lab.sh
Questo e il comando consigliato tra un lab e l'altro. Agisce solo sulle risorse create dal corso.
Se invece vuoi una pulizia totale del tuo ambiente Docker locale:
./scripts/reset-env.sh --dry-run
./scripts/reset-env.sh
Attenzione: reset-env.sh agisce su tutto l'ambiente Docker locale, non solo sui container del corso.
Strumenti utili
Comandi Docker essenziali
# Lista container attivi
docker ps
# Lista tutti i container (anche fermi)
docker ps -a
# Vedi logs di un container
docker logs <nome-container>
# Entra in un container (debug)
docker exec -it <nome-container> sh
# Lista reti
docker network ls
# Lista volumi
docker volume ls
# Statistiche risorse
docker stats
Comandi Docker Compose
# Avvia tutti i servizi
docker compose up -d
# Ferma tutti i servizi
docker compose down
# Vedi stato servizi
docker compose ps
# Logs di tutti i servizi
docker compose logs
# Ricostruisci e riavvia (solo se il README del lab lo richiede)
docker compose up -d --build
Risoluzione problemi comuni
"Permission denied" su Docker
# Aggiungi utente al gruppo docker
sudo usermod -aG docker $USER
# Fai logout e login, oppure:
newgrp docker
"Command not found: docker compose"
Hai la versione vecchia. Installa Docker Compose V2:
- Su Linux: Docker Engine >= 24.0 include Compose V2
- Su macOS/Windows: Docker Desktop >= 4.0
Container non si avvia
# Controlla logs
docker compose logs
# Controlla risorse
docker stats
# Verifica porte in uso
docker ps
"No space left on device"
Docker occupa troppo spazio. Pulisci:
# Rimuovi container fermi
docker container prune
# Rimuovi immagini non usate
docker image prune
# Rimuovi volumi orfani
docker volume prune
# Pulizia mirata dei laboratori cloud
./scripts/prepare-lab.sh --dry-run
./scripts/prepare-lab.sh
# Reset completo ambiente (attenzione: rimuove tutti i volumi Docker)
./scripts/reset-env.sh --dry-run
./scripts/reset-env.sh
Come imparare al meglio
- Non copiare-incollare: scrivi ogni comando a mano
- Comprendi prima di eseguire: leggi perche fai ogni passo
- Sperimenta: modifica parametri e vedi cosa succede
- Documenta: prendi appunti sui comandi importanti
- Collega al cloud: pensa sempre "questo in AWS sarebbe..."
Supporto
- Documentazione: ogni lab ha guide complete
- Script di verifica: ti dicono esattamente cosa e sbagliato
- Troubleshooting: sezioni dedicate in ogni tutorial
- Reference: sintassi completa e parametri
Prossimi passi dopo il corso
Una volta completati tutti i 5 laboratori:
- Avrai una comprensione pratica del cloud computing
- Saprai configurare infrastrutture sicure e scalabili
- Potrai applicare questi concetti nei tuoi progetti reali
- Sarai pronto per certificazioni cloud (AWS, Azure, GCP)
Buon apprendimento!