Docker su Windows via WSL2

🐳 Docker su Windows via WSL2

Target: Configurazione di un ambiente di containerizzazione ad alte prestazioni e integrazione con il file system Linux.

::: info L’architettura Docker + WSL2 permette di eseguire container Linux con un overhead minimo. In questa configurazione, Windows funge da interfaccia (UI), mentre il core di Docker risiede all’interno della distribuzione Linux (es. Ubuntu), garantendo la massima compatibilità con gli stack di sviluppo (Python, C++, Node). :::

1. Architettura del Sistema

A differenza delle vecchie implementazioni, Docker Desktop su WSL2 non emula l’hardware, ma comunica direttamente con il kernel Linux integrato in Windows.


2. Prerequisiti Hardware e Software

Prima di installare, verifica che la virtualizzazione sia abilitata.

  • BIOS/UEFI: Intel VT-x o AMD-V deve essere Enabled.
  • Windows Features: Abilita “Sottosistema Windows per Linux” e “Piattaforma macchina virtuale”.
  • Winget (CLI): Utilizziamo il package manager per un’installazione pulita.

3. Procedura di Installazione (Workflow Professionale)

Fase 1: Installazione/Aggiornamento WSL2

Apri il terminale (Admin) ed esegui:

# Installa WSL e la distro di default (Ubuntu)
wsl --install

# Assicurati che la versione 2 sia quella predefinita
wsl --set-default-version 2

Fase 2: Installazione Docker Desktop

Utilizziamo Winget per evitare il download manuale:

winget install -e --id Docker.DockerDesktop

Fase 3: Configurazione Backend

  1. Apri Docker Desktop.
  2. Vai in Settings > General.
  3. Assicurati che “Use the WSL 2 based engine” sia spuntato.
  4. Vai in Settings > Resources > WSL Integration.
  5. Abilita l’integrazione per la tua distribuzione (es. Ubuntu).

4. Ottimizzazione delle Performance (.wslconfig)

Passaggio Critico: Di default, WSL2 può consumare fino all'80% della tua RAM. In qualità di ingegneri, dobbiamo limitare questo comportamento per non bloccare l’host Windows.

  1. Premi Win + R, digita %USERPROFILE%.
  2. Crea (o modifica) un file chiamato .wslconfig.
  3. Inserisci questa configurazione ottimizzata:
[wsl2]
# Limita la RAM usata da Linux (es. 8GB)
memory=8GB 

# Limita i core della CPU
processors=4 

# Abilita il rilascio della memoria inutilizzata verso Windows
guiApplications=false

Riavvia WSL con il comando: wsl --shutdown.


5. Integrazione con lo Sviluppo (VS Code)

Per lavorare “dentro” i container:

  1. Installa l’estensione “Dev Containers” in VS Code.
  2. Usa il comando Remote-Containers: Open Folder in Container.
  3. Regola d’oro: Per massime performance di I/O, clona i tuoi repository Git dentro il file system di WSL2 (es. \\wsl$\Ubuntu\home\user\project) e non su partizioni Windows (C:\).

💡 Note dell’Ingegnere (Critical Thinking)

  • File System Performance: Accedere ai file di Windows (/mnt/c/) da Docker è lento a causa della traduzione del file system (9P protocol). Sposta sempre i progetti pesanti dentro la home di Linux in WSL.
  • Networking: WSL2 usa un’interfaccia di rete virtualizzata con NAT. Se hai bisogno che i tuoi container siano visibili nella LAN come dispositivi separati, dovrai configurare un Bridge (procedura avanzata).
  • Docker senza Desktop: Se preferisci non usare l’interfaccia grafica di Docker Desktop (risparmiando circa 1GB di RAM), puoi installare il motore Docker direttamente “dentro” Ubuntu via CLI, proprio come su un server Linux puro.

Tags: #Docker #WSL2 #Windows11 #Virtualizzazione #DevOps*

Last updated on Thursday, March 5, 2026
Built with Hugo
Theme Stack designed by Jimmy