Video 01 - Docker Creazione Web Server Apache
Dalle VM ai container: cos'è Docker, architetture a microservizi, WSL2, Kali Linux con Win-KeX GUI e installazione di Docker Desktop su Windows.
2. Di cosa parla questo video
In questo tutorial vediamo la teoria alla base dei container e delle architetture a microservizi e ti guiderò nell'installazione di WSL2 e di Docker Desktop, con distribuzione Kali Linux e interfaccia grafica Win-KeX, per creare il tuo primo lab Docker su Windows.
Partiamo da zero: VM vs container, hypervisor Type 1/2 vs Docker Engine, isolamento kernel Linux, namespace e cgroup, architetture monolitiche vs microservizi, vantaggi container: leggerezza, portabilità, scalabilità, DevOps. Poi WSL2: cos'è, perché Microsoft lo ha creato, differenza WSL1 (translation layer) vs WSL2 (kernel Linux reale in VM leggera), integrazione con Windows, filesystem, networking. Installazione: wsl --install, wsl --set-default-version 2, Microsoft Store Kali Linux, sudo apt update && sudo apt upgrade -y, installazione Win-KeX per GUI Kali: sudo apt install kali-win-kex -y, kex --win -s. Infine Docker Desktop: download da docker.com, installazione con backend WSL2, abilitazione integrazione WSL2, verifica docker --version, docker ps, wsl -l -v, primo container test docker run hello-world e docker run -d -p 80:80 httpd Apache.
Questo è il video che sblocca tutto il corso Docker. Nel video al minuto 8 mostro l'errore che blocca il 70% degli studenti: installano Docker Desktop senza WSL2 abilitato, così Docker non parte e resta con errore "WSL2 not installed". Vi mostro come abilitare virtualizzazione da BIOS, Hyper-V, Virtual Machine Platform e WSL da Windows Features. Al minuto 14 mostro Kali senza Win-KeX: provate a lanciare GUI e vedete solo terminale nero, senza Win-KeX non avete desktop. Al minuto 22 mostro Docker Desktop senza integrazione WSL2: docker ps da Kali dice "Cannot connect to Docker daemon", dovete andare in Settings → Resources → WSL Integration → spuntare Kali. È la base per tutti i 4 video.
3. Obiettivi di apprendimento
- ✅ Cosa sono i container e le architetture a microservizi vs monolitiche
- ✅ Cos'è Docker: Engine, immagini, container, Dockerfile, Docker Hub
- ✅ Cos'è WSL2 e perché è utile con Docker Desktop su Windows
- ✅ Come installare WSL2 con distribuzione Kali Linux e Win-KeX (GUI) per desktop Linux su Windows
- ✅ Come installare Docker Desktop con backend WSL2 e verificare con hello-world e Apache httpd
Alla fine saprai spiegare differenza VM vs container, monolitico vs microservizi, installare WSL2 su Windows 10/11 con wsl --install, installare Kali Linux da Store, aggiornare Kali, installare Win-KeX per GUI con kex --win -s, installare Docker Desktop con WSL2 backend, abilitare integrazione WSL per Kali, lanciare docker run hello-world e docker run -d -p 80:80 httpd per web server Apache di prova, verificare da browser localhost:80.
4. Perché container - Da VM a microservizi
Senza container, sviluppo e deploy sono pesanti e lenti:
| VM tradizionali | Container Docker (questo corso) |
|---|---|
| Hypervisor + OS guest completo per ogni VM, GB di RAM | Docker Engine su kernel host, condivide kernel, MB di RAM |
| Avvio in minuti, immagine da GB | Avvio in secondi, immagine da MB, portabilità totale |
| Monolitico: tutto in una VM, scalabilità difficile | Microservizi: Apache, MySQL, PHP in container separati, scalabili |
| Ambiente diverso da dev a prod → "funziona sulla mia macchina" | Stesso container ovunque: dev, test, prod identici |
| WSL1 translation lenta | WSL2 kernel Linux reale + Docker Desktop integrazione |
| No GUI Linux su Windows | Kali + Win-KeX GUI desktop Linux su Windows |
Se vi chiedono "Differenza VM e container? Cos'è WSL2?", rispondete: "VM virtualizza hardware con hypervisor e OS guest completo per ogni VM, pesante GB e avvio minuti. Container virtualizza OS con Docker Engine che condivide kernel host, usa namespace e cgroup per isolamento, leggero MB e avvio secondi, portabilità. WSL2 è kernel Linux reale in VM leggera su Windows, differenza da WSL1 che era translation layer syscall. WSL2 serve a Docker Desktop su Windows per eseguire container Linux nativamente senza VM pesante, con integrazione filesystem e networking, e con Kali + Win-KeX ho GUI Linux su Windows". Risposta da sistemista DevOps.
5. Concetti chiave - Container, Docker, WSL2, Kali, Win-KeX
Cuore del video, minuto 4-18:
6. Lab pratico - Installazione WSL2 Kali e Docker Desktop
Nel video (minuto 5-30):
- Prerequisiti Windows: Windows 10 2004+ o 11, BIOS virtualizzazione VT-x/AMD-V abilitata, Windows Features → spunta Hyper-V, Virtual Machine Platform, Windows Subsystem for Linux → riavvio
- WSL2: PowerShell Admin →
wsl --install(installa WSL2 + Ubuntu default) →wsl --set-default-version 2→wsl --update→ verificawsl -l -v→ VERSION 2 - Kali Linux: Microsoft Store → cerca Kali Linux → Installa → Avvia → crea user kali e password →
sudo apt update && sudo apt upgrade -y→sudo apt install kali-win-kex -y→kex --win -s→ si apre finestra Kali GUI desktop →kex --win --sl -sper seamless →kex --stopper chiudere - Docker Desktop: docker.com → Download Docker Desktop → installer → spunta Use WSL2 instead of Hyper-V → Installa → riavvio → avvia Docker Desktop → accetta Terms → Skip tutorial → Settings → General → Use WSL2 based engine spuntato → Resources → Advanced → CPUs, Memory → Resources → WSL Integration → Enable integration with my default WSL distro + spunta Kali-linux → Apply & Restart
- Verifica: PowerShell →
docker --version→ Docker 24.x,docker ps→ vuoto ok,wsl -l -v→ docker-desktop Running, Kali Running v2. Da Kali terminale →docker --version,docker run hello-world→ scarica immagine e stampa Hello,docker run -d -p 80:80 --name web httpd→ Apache, browser localhost:80 → It works!docker ps -a,docker stop web,docker rm web
WSL2: wsl --install, wsl -l -v verifica VERSION 2, wsl --shutdown per riavviare. Kali: Store → apt update → apt install kali-win-kex → kex --win -s GUI. Docker Desktop: download → Use WSL2 backend → Settings Resources WSL Integration spunta Kali → Apply. Verifica: docker run hello-world ok, docker run -d -p 80:80 httpd → localhost:80 It works! Da Kali docker ps deve funzionare, se no abilita integrazione. Nel video al minuto 28 mostro Docker Desktop dashboard con container Apache Running.
7. Errori comuni da evitare
- Virtualizzazione disabilitata da BIOS: wsl --install errore "Virtualization not enabled" → entra in BIOS (F2/DEL all'avvio) → Advanced → VT-x / AMD-V / SVM → Enabled → Save & Exit.
- WSL1 invece di WSL2: wsl -l -v mostra VERSION 1 → Docker Desktop non parte, errore WSL2 required. Esegui
wsl --set-version Kali-linux 2ewsl --set-default-version 2. - Hyper-V mancante: Docker Desktop errore "Hyper-V not enabled" → Windows Features → spunta Hyper-V + Virtual Machine Platform + WSL → riavvio.
- Docker Desktop senza integrazione WSL: da Kali docker ps → Cannot connect to Docker daemon → Docker Desktop Settings → Resources → WSL Integration → spunta Kali-linux → Apply & Restart → da Kali riprova.
- Kali senza Win-KeX: lanci Kali e vedi solo terminale senza GUI → sudo apt install kali-win-kex -y e kex --win -s per desktop.
- Porta 80 occupata: docker run -p 80:80 errore port already allocated → Skype o IIS usa porta 80 → docker run -p 8080:80 e browser localhost:8080 oppure netstat -ano | findstr :80 e chiudi processo.
- WSL2 filesystem lento: progetti su /mnt/c/ lenti → sposta progetti in home Linux ~/ dentro WSL2, non su C: montato, velocità 5x.
WSL2 non installato o VERSION 1 + Docker Desktop senza backend WSL2 + integrazione WSL disabilitata. Sintomo: Docker Desktop non parte, errore WSL2 not installed, docker ps Cannot connect to daemon, da Kali docker command not found, hello-world non parte. Soluzione: BIOS virtualizzazione Enabled, Windows Features Hyper-V + Virtual Machine Platform + WSL spuntati, PowerShell Admin wsl --install e wsl --set-default-version 2, wsl -l -v verifica VERSION 2 per Kali e docker-desktop Running, Docker Desktop Settings Use WSL2 based engine spuntato, Resources WSL Integration spunta Kali-linux Apply & Restart, PowerShell docker run hello-world ok. Nel video al minuto 8 mostro BIOS e Features.
8. Approfondimento: Docker Desktop e WSL2 integration
Architettura finale lab:
| Componente | Ruolo | Verifica |
|---|---|---|
| Windows Host | OS base, Hyper-V, WSL2 VM leggera | Win 10/11 2004+, Task Manager → Performance → Virtualization Enabled |
| WSL2 Engine | Kernel Linux reale, filesystem ext4, networking | wsl -l -v → VERSION 2, wsl --shutdown per riavvio |
| Kali Linux WSL2 | Distro pentesting, terminale + GUI Win-KeX | Store Kali, kex --win -s GUI, apt update |
| Docker Desktop | Engine, CLI, GUI, Compose, Kubernetes, backend WSL2 | docker --version, Settings → WSL2 based engine, Resources → WSL Integration Kali spuntato |
| Container httpd | Apache web server test, porta 80→80 | docker run -d -p 80:80 httpd, localhost:80 It works!, docker ps, logs, stop, rm |
| Prossimi video | Video 2 PULL, Video 3 Dockerfile PUSH, Video 4 Compose LAMP | Base pronta per corso completo |
Prossimo video: Docker PULL di immagini ufficiali e creazione container.
📚 Compito per casa
Prepara lab: Windows 10/11 verifica virtualizzazione abilitata Task Manager, PowerShell Admin wsl --install, wsl --set-default-version 2, wsl -l -v verifica VERSION 2. Installa Kali da Store, crea user, sudo apt update && upgrade, sudo apt install kali-win-kex -y, kex --win -s verifica GUI, kex --stop. Scarica Docker Desktop da docker.com, installa con Use WSL2 backend, avvia, Settings General Use WSL2 based engine spuntato, Resources WSL Integration spunta Kali Apply & Restart. Verifica PowerShell docker --version, docker run hello-world Hello message, docker run -d -p 80:80 --name web httpd, browser localhost:80 It works!, docker ps, docker logs web, docker stop web, docker rm web, da Kali wsl → docker ps funzionante. Screenshot wsl -l -v VERSION 2 + Docker Desktop Running + localhost It works! Mandamelo prima del Video 2 PULL immagini.
