Guida alle tecnologie

Monitorare CPU e memoria in Docker Desktop

8 min read DevOps Aggiornato 22 Oct 2025
Monitorare CPU e memoria in Docker Desktop
Monitorare CPU e memoria in Docker Desktop

Schermata che mostra l'uso delle risorse in Docker Desktop

Essere in grado di monitorare l’utilizzo della CPU e della memoria in Docker Desktop ti aiuta a capire come i container si comportano e come influenzano le prestazioni del sistema. Docker Desktop mette a disposizione diversi modi per monitorare e gestire queste risorse. In questa guida vedremo come monitorare efficacemente CPU e memoria, come interpretare i dati e quali azioni intraprendere.

Perché è necessario gestire le risorse in Docker Desktop

Docker Desktop esegue i container all’interno di un ambiente virtualizzato. Su Windows questo può essere Hyper-V o WSL2; su macOS si usa HyperKit. Lo strato della macchina virtuale rende il comportamento dei container coerente tra sistemi, ma aggiunge anche un sovraccarico. Ciò significa che sia i carichi dei container sia i processi di Docker Desktop possono consumare risorse significative.

Per mantenere il computer reattivo, Docker fornisce controlli su CPU, memoria e disco. Puoi limitare il numero di core CPU a disposizione di Docker, impostare un limite di memoria per evitare che i container consumino tutta la RAM disponibile e limitare lo spazio su disco o avviare operazioni di pulizia per rimuovere immagini, container e volumi non utilizzati.

Capire come Docker Desktop gestisce CPU, memoria e disco chiarisce l’origine del consumo. A volte l’elevato utilizzo è collegato a un container specifico; altre volte è dovuto ai processi di background di Docker. Per questo il monitoraggio è essenziale: ti permette di tracciare attività, identificare i consumatori principali e mantenere il sistema stabile.

Monitorare CPU e memoria con il Dashboard di Docker Desktop

Il Dashboard di Docker Desktop offre un’interfaccia integrata e intuitiva per controllare i container. È il modo più semplice per verificare l’utilizzo in tempo reale senza usare il terminale.

Per monitorare le prestazioni dei container, apri Docker Desktop e vai alla sezione Containers. Vedrai ogni container in esecuzione con l’uso in tempo reale di CPU e memoria. Questo ti permette di individuare rapidamente se un container sta usando troppe risorse.

Interfaccia del Dashboard con uso risorse per container

Cliccando su un container puoi visualizzarne i log, le variabili d’ambiente e i processi in esecuzione, incluse le statistiche in tempo reale di CPU, memoria, disco e rete.

Dettagli di un singolo container con metriche in tempo reale

Questa visualizzazione rende semplice individuare problemi di prestazioni o eseguire diagnosi senza comandi complessi.

Migliorare il monitoraggio con l’estensione Resource Usage

Un altro modo per monitorare le prestazioni in Docker Desktop è usare l’estensione Resource Usage. Mentre il Dashboard mostra CPU e memoria, l’estensione fornisce una dashboard dedicata con approfondimenti più dettagliati.

Per installarla, vai nella sezione Extensions nella barra laterale sinistra di Docker Desktop, cerca Resource Usage nella barra di ricerca e clicca su Install.

Schermata di installazione dell'estensione Resource Usage

Dopo l’installazione, troverai l’estensione nella barra laterale. Aprendola vedrai una panoramica chiara dell’uso di CPU e memoria per ogni container, oltre a I/O disco e attività di rete. Puoi filtrare e ordinare i container per identificare rapidamente i maggiori consumatori.

Panoramica dell'estensione Resource Usage con lista container

Nella Chart View l’estensione mostra i dati in grafici temporali, utili per rilevare picchi o attività anomale.

Grafici dell'uso delle risorse nell'estensione

L’estensione semplifica il monitoraggio rispetto all’interfaccia predefinita, specialmente quando esegui più container contemporaneamente.

Monitorare in tempo reale con il comando docker stats

Il comando docker stats permette di tracciare in tempo reale CPU, memoria, disco e rete dei container dal terminale. Puoi aprire il terminale direttamente in Docker Desktop e eseguire:

docker stats

Questo comando streamma metriche live come CPU, memoria, ecc. Per interrompere lo stream e tornare al prompt premere Ctrl + C.

Esempio di output del comando docker stats in terminale

Per monitorare un singolo container specifica nome o ID. Ad esempio, per mostrare solo il container openwebui:

docker stats openwebui

Esempio di docker stats per un container specifico

docker stats è utile se preferisci il monitoraggio da riga di comando o vuoi integrare le metriche in script automatici.

Azioni da eseguire quando rilevi un consumo elevato

Se identifichi un picco di CPU o memoria, segui questo flusso operativo rapido:

  1. Isola il container che causa il picco (Dashboard, estensione o docker stats).
  2. Esamina i log e i processi interni al container.
  3. Verifica configurazioni di limite: ricordati di usare –cpus o memorie limit (es. -m 512m) quando avvii container critici.
  4. Se il carico è legittimo, scala orizzontalmente (repliche) o verticalmente (risorse aggiuntive alla VM).
  5. Se il carico è anomalo, kill/restart del container o rollback a una versione stabile.

Questi passaggi riducono l’impatto sull’host e aiutano a scoprire problemi applicativi o di configurazione.

Mini-metodologia: misurare, interpretare, agire, automatizzare

  • Misurare: raccogli metriche usando Dashboard, estensione e docker stats.
  • Interpretare: confronta i pattern temporali, considera picchi rispetto al carico atteso.
  • Agire: applica limiti, ridimensiona container o modifica l’immagine se necessario.
  • Automatizzare: integra alerting e script di scala automatica (ad es. tramite CI/CD o orchestratori esterni).

Questa metodologia breve ti aiuta a trasformare i dati in azioni ripetibili.

Checklist per ruolo

Sviluppatori:

  • Controllare i processi interni con docker exec top.
  • Limitare memoria e CPU durante lo sviluppo (es. -m 256m –cpus=0.5).
  • Riprodurre carichi elevati in ambiente locale prima di deploy.

Amministratori di sistema / DevOps:

  • Monitorare le risorse dell’host VM (WSL2/Hyper-V/HyperKit).
  • Impostare limiti globali in Docker Desktop settings.
  • Automatizzare cleanup immagini e volumi obsoleti.

QA / Tester:

  • Eseguire test di carico e osservare grafici di utilizzo.
  • Verificare che i container degradino in modo prevedibile sotto stress.

Product Owner / Manager:

  • Usare report periodici per valutare costi e necessità di infrastruttura.
  • Prioritizzare ottimizzazioni in base a impatto × sforzo.

Quando il monitoraggio può non bastare (controesempi)

  • Workload che richiede GPU: Docker Desktop non gestisce GPU in modo nativo per carichi complessi; serve configurazione specifica o ambienti cloud.
  • Problemi hardware dell’host: se il disco è degradato o la RAM fisica è insufficiente, i limiti di Docker non risolvono il problema.
  • Dipendenze esterne lente: alti tempi di attesa di rete possono sembrare problemi di CPU/memoria ma sono I/O o latenza di rete.

È importante distinguere tra problemi applicativi, limiti dell’host e configurazioni di container.

Strumenti alternativi per un monitoraggio avanzato

  • Portainer: interfaccia di gestione con metriche e controllo dei container.
  • Prometheus + Grafana: raccolta e visualizzazione di metriche dettagliate, utile in ambienti di produzione.
  • cAdvisor: metriche a livello di container per integrazione con sistemi di monitoraggio.

Queste soluzioni sono più adatte per ambienti multi-host o per requisiti di osservabilità avanzata.

Esempio di playbook rapido (SOP)

  1. Notifica: ricevi alert di utilizzo CPU/memoria > soglia.
  2. Identificazione: usare Dashboard o docker stats per individuare il container.
  3. Ispezione: controllare log, variabili d’ambiente e processi.
  4. Azione immediata: riavviare container non critici o applicare limiti temporanei.
  5. Post-mortem: analizzare root cause e aggiornare immagini/configurazioni.
  6. Prevenzione: aggiungere test di carico e policy di limite risorse.

Flusso decisionale rapido

flowchart TD
  A[Avviso di alto utilizzo] --> B{È un container singolo?}
  B -- Sì --> C[Ispeziona container 'log/processi']
  B -- No --> D[Verifica host VM e processi Docker]
  C --> E{Uso giustificato dal workload?}
  E -- Sì --> F[Scala o aggiungi risorse alla VM]
  E -- No --> G[Restart/rollback container e apri issue]
  D --> H{Problema host?}
  H -- Sì --> I[Diagnosi hardware/WSL2/HyperKit]
  H -- No --> G

Criteri di successo

  • Riduzione dei picchi imprevisti di CPU/memoria entro il tempo di risposta SLA interno.
  • Identificazione chiara della sorgente di utilizzo in meno di 30 minuti.
  • Applicazione di limiti o scaling che evitino il degrado dell’host.

Box dei punti chiave

  • Docker Desktop usa una VM: aggiunge overhead ma fornisce coerenza.
  • Dashboard = controllo rapido; estensione = approfondimenti; docker stats = terminale.
  • Limiti resource (–cpus, -m) prevengono l’esaurimento della RAM/CPU.
  • Per osservabilità di produzione, integra Prometheus/Grafana o Portainer.

Domande frequenti

Come imposto un limite di memoria per un container?

Avvia il container con l’opzione -m, ad esempio: docker run -m 512m my-image per limitare la memoria a 512 MB.

docker stats mostra anche l’uso del disco?

docker stats mostra principalmente CPU, memoria, I/O di rete e I/O disco a un livello di base; per metriche disco più dettagliate usa tool di monitoraggio come cAdvisor o Prometheus.

L’estensione Resource Usage funziona su tutte le piattaforme?

Sì, l’estensione è disponibile in Docker Desktop su Windows e macOS, ma i dettagli della VM (WSL2/Hyper-V/HyperKit) possono influire sulle metriche riportate.

Quando devo passare a strumenti avanzati come Prometheus?

Quando hai più host, necessiti di retention storica delle metriche, alerting avanzato o dashboard custom per team e SLA. Per uso locale la dashboard e l’estensione spesso bastano.

Riepilogo

Monitorare CPU e memoria in Docker Desktop è fondamentale per mantenere i container e il sistema host stabili. Usa il Dashboard per verifiche rapide, l’estensione Resource Usage per analisi dettagliate e docker stats per il controllo via terminale. Applica limiti di risorse, segui una metodologia misurare-interpretare-agire-automatizzare e valuta strumenti avanzati quando cresce la complessità.

Importante: per carichi di produzione o ambienti multi-host, integra soluzioni di osservabilità dedicate e pianifica test di carico regolari.

Autore
Redazione

Materiali simili

Installare e usare Podman su Debian 11
DevOps

Installare e usare Podman su Debian 11

Guida rapida a apt-pinning su Debian
Linux

Guida rapida a apt-pinning su Debian

Forzare FSR 4 con OptiScaler: guida completa
Guide.

Forzare FSR 4 con OptiScaler: guida completa

Dansguardian + Squid NTLM su Debian Etch
Rete

Dansguardian + Squid NTLM su Debian Etch

Riparare errore installazione SD su Android
Android

Riparare errore installazione SD su Android

Cartelle di rete con KNetAttach e remote:/
Linux

Cartelle di rete con KNetAttach e remote:/