Guida per installare e configurare Docker su Windows - WSL - Linux
Introduzione
Docker è la piattaforma standard per la creazione, distribuzione ed esecuzione di applicazioni in container. Questa guida copre tre scenari di installazione:
- Windows tramite Docker Desktop
- WSL 2 (Windows Subsystem for Linux) integrato con Docker Desktop o in modalità standalone
- Linux (Ubuntu/Debian e derivate) tramite il repository ufficiale Docker
I container Docker eliminano il classico problema “funziona sulla mia macchina” garantendo ambienti riproducibili e isolati.
Prerequisiti
Comuni
- Connessione internet per scaricare pacchetti e immagini
- Privilegi di amministratore / sudo sul sistema
Windows
- Windows 10 versione 2004 o successiva (build 19041+) oppure Windows 11
- Virtualizzazione hardware abilitata nel BIOS/UEFI (Intel VT-x / AMD-V)
- Almeno 4 GB di RAM (consigliati 8 GB)
WSL 2
- WSL 2 già installato e configurato (vedi Guida WSL2)
- Una distro Linux attiva in WSL 2 (es. Ubuntu 22.04 o 24.04)
Linux
- Ubuntu 20.04 / 22.04 / 24.04, Debian 11/12, o derivate compatibili
- Utente con accesso
sudo curlowgetdisponibili
Step 1 — Installazione su Windows (Docker Desktop)
1.1 Abilitare WSL 2 e la virtualizzazione
Apri PowerShell come Amministratore ed esegui:
wsl --install
wsl --set-default-version 2Riavvia il sistema se richiesto.
1.2 Scaricare Docker Desktop
Vai su https://www.docker.com/products/docker-desktop/ e scarica l’installer per Windows.
1.3 Installare Docker Desktop
Esegui il file .exe scaricato. Durante l’installazione:
- Spunta “Use WSL 2 instead of Hyper-V” (consigliato)
- Spunta “Add shortcut to desktop” se desiderato
- Completa l’installazione e riavvia il sistema
1.4 Verifica post-installazione
Apri un terminale (PowerShell o cmd) e verifica:
docker --version
docker compose versionAvvia un container di test:
docker run hello-worldSe vedi il messaggio Hello from Docker! l’installazione è riuscita.
1.5 Configurazione consigliata di Docker Desktop
Apri Docker Desktop → Settings:
- General: abilita “Start Docker Desktop when you log in”
- Resources → WSL Integration: attiva l’integrazione per le distro WSL che usi
- Resources → Advanced: assegna CPU e RAM adeguati (es. 4 CPU, 4 GB RAM)
- Docker Engine: puoi personalizzare il daemon JSON (es. mirror registry)
Step 2 — Configurazione su WSL 2
Dopo aver integrato Docker Desktop con WSL 2 (Step 1.5), Docker è già disponibile all’interno di WSL. Verifica aprendo il terminale della tua distro:
docker --version
docker compose version
docker run hello-world2.1 WSL 2 standalone (senza Docker Desktop)
Se preferisci non usare Docker Desktop (es. per motivi di licenza aziendale), puoi installare Docker Engine direttamente nella distro WSL seguendo la procedura Linux qui sotto (Step 3), avviando il daemon manualmente:
sudo service docker startOppure aggiungendo al tuo .bashrc / .zshrc:
# Avvia Docker automaticamente in WSL
if ! pgrep -x "dockerd" > /dev/null; then
sudo service docker start > /dev/null 2>&1
fi2.2 Montare volumi tra Windows e WSL
Puoi accedere al filesystem Windows da WSL sotto /mnt/c/. Esempio:
docker run -v /mnt/c/Users/User/progetto:/app myimageAttenzione: le performance I/O sui volumi cross-filesystem (Windows ↔ WSL) sono inferiori rispetto a file nativi WSL. Tieni i file di progetto in ~/ all’interno di WSL per performance ottimali.
2.3 Docker context in WSL
# Verifica il context attivo
docker context ls
# Usa il context di default (socket Unix)
docker context use defaultStep 3 — Installazione su Linux (Ubuntu/Debian)
3.1 Rimuovere versioni precedenti
sudo apt remove docker docker-engine docker.io containerd runc 2>/dev/null3.2 Aggiungere il repository ufficiale Docker
# Aggiorna i pacchetti e installa le dipendenze
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
# Aggiungi la chiave GPG ufficiale di Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Aggiungi il repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullPer Debian sostituisci
ubuntucondebiannell’URL del repository.
3.3 Installare Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin3.4 Avviare e abilitare il servizio
sudo systemctl enable docker
sudo systemctl start dockerVerifica lo stato:
sudo systemctl status docker3.5 Aggiungere l’utente al gruppo docker
Senza questo step servirà sudo ad ogni comando Docker:
sudo usermod -aG docker $USER
newgrp dockerDisconnettiti e riconnettiti (o riavvia) affinché il gruppo sia attivo.
3.6 Verifica finale
docker --version
docker compose version
docker run hello-worldStep 4 — Configurazione comune post-installazione
4.1 Configurare il daemon Docker (daemon.json)
Il file di configurazione principale del daemon si trova in:
- Linux/WSL:
/etc/docker/daemon.json - Windows (Docker Desktop): accessibile da Settings → Docker Engine
Esempio di configurazione utile:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"default-address-pools": [
{ "base": "172.20.0.0/16", "size": 24 }
]
}Riavvia il daemon dopo ogni modifica:
sudo systemctl restart docker4.2 Installare Docker Compose (se non incluso)
Docker Compose V2 è incluso come plugin (docker compose). Per verificare:
docker compose versionSe mancante su Linux:
sudo apt install docker-compose-plugin4.3 Comandi essenziali di verifica
# Info complete sul sistema Docker
docker info
# Stato dei container in esecuzione
docker ps
# Tutte le immagini locali
docker images
# Spazio usato da Docker
docker system df
# Pulizia di risorse inutilizzate
docker system prune -fConclusioni
Hai installato e configurato Docker su tutte e tre le piattaforme:
| Piattaforma | Metodo | Daemon |
|---|---|---|
| Windows | Docker Desktop | Gestito da Desktop |
| WSL 2 | Integrazione Desktop o Engine standalone | Tramite Desktop o service docker |
| Linux | Docker Engine da repository ufficiale | systemd |
Per un utilizzo quotidiano in ambiente di sviluppo WSL + Windows, il flusso consigliato è: Docker Desktop su Windows con integrazione WSL 2 attiva, lasciando i file di progetto nella home WSL (~/) per performance ottimali.
Prossimi passi consigliati: esplora Docker Compose, Docker Networking e Docker Volumes per gestire applicazioni multi-container.