Monitorizar CPU y memoria en Docker Desktop

Por qué es necesario gestionar recursos en Docker Desktop
Docker Desktop ejecuta contenedores dentro de una capa virtualizada. En Windows puede ser Hyper-V o WSL2, y en macOS usa HyperKit. Esa capa virtual aporta consistencia entre sistemas, pero también añade consumo adicional. Por eso tanto las cargas de trabajo en contenedores como los procesos en segundo plano de Docker pueden usar recursos significativos del sistema.
Controlar CPU, memoria y disco evita que el equipo quede lento o inestable. Docker Desktop permite limitar núcleos CPU, fijar un tope de memoria y gestionar el almacenamiento (limpieza de imágenes, contenedores y volúmenes). Conocer cómo y dónde se consume cada recurso ayuda a identificar contenedores problemáticos y a distinguirlos de la sobrecarga causada por Docker mismo.
Importante: monitorizar no es solo observar números; es identificar patrones, establecer umbrales y conectar mediciones con acciones concretas.
Monitorizar CPU y memoria desde el Dashboard de Docker Desktop
El Dashboard de Docker Desktop ofrece una interfaz gráfica sencilla para ver contenedores y su uso en tiempo real sin recurrir a la terminal.
- Abre Docker Desktop.
- Ve a la sección “Containers” (Contenedores).
- Observa la lista de contenedores con métricas de CPU y memoria en tiempo real.

Si haces clic en un contenedor puedes ver registros, variables de entorno y procesos en ejecución, además de detalles de CPU, memoria, disco y red en tiempo real.

Ventajas del Dashboard:
- Acceso rápido y visual para desarrolladores.
- Útil para inspecciones puntuales y debugging rápido.
- No requiere conocimientos avanzados de CLI.
Limitaciones:
- Menos configurable que soluciones de observabilidad dedicadas.
- No conserva históricos largos ni permite alertas sofisticadas.
Mejorar la monitorización con la extensión Resource Usage
La extensión Resource Usage añade un panel dedicado con gráficas y filtros avanzados.
- Abre “Extensions” en la barra lateral.
- Busca “Resource Usage”.
- Haz clic en “Install”.

Tras instalarla, la verás en la barra lateral. La extensión muestra CPU, memoria, I/O de disco y actividad de red por contenedor, con opciones de ordenación y filtrado.

Puedes cambiar a la vista de gráficas para detectar picos o patrones:

Cuándo usar la extensión:
- Cuando ejecutas muchas instancias y necesitas filtrar por etiqueta o nombre.
- Para detectar picos en ventanas cortas que el Dashboard no muestra con claridad.
- Si quieres una vista más ordenada sin desplegar herramientas externas.
Monitorizar en tiempo real con docker stats
El comando docker stats entrega métricas en tiempo real desde la terminal. Abre un terminal integrado o tu terminal habitual y ejecuta:
docker statsEsto inicia un stream continuo con CPU, memoria, límite de memoria, I/O y red por contenedor. Presiona Ctrl + C para detener el stream.

Para monitorizar un contenedor específico, añade su nombre o ID:
docker stats openwebui
Ventajas de docker stats:
- Ligero y sin dependencias externas.
- Ideal para scripts o debugging en servidores sin UI.
Limitaciones:
- No almacena históricos.
- Salida difícil de analizar a gran escala; mejor usarla combinada con grabación o parsers.
Comandos útiles para gestionar límites y limpiar recursos
- Limitar CPU al crear un contenedor:
docker run --cpus="1.5" nginx- Limitar memoria:
docker run -m 512m --memory-swap 512m redis- Cambiar recursos a un contenedor en ejecución (con ciertas versiones):
docker update --cpus 2 --memory 1g container_id- Liberar espacio no usado:
docker system prune -af --volumesNota: usar prunning con cuidado en entornos de desarrollo compartidos.
Mini-metodología para monitorizar recursos (5 pasos)
- Definir objetivos: decide si necesitas datos en tiempo real, históricos o alertas.
- Establecer umbrales iniciales: por ejemplo, CPU > 80% sostenido 30s, memoria > 75% del límite.
- Recopilar métricas: usa Dashboard/Extensión para inspecciones y docker stats para scripts.
- Correlacionar: vincula picos con despliegues, logs o cambios de configuración.
- Actuar y automatizar: limita recursos, escala servicios o añade alertas en herramientas externas.
Playbook rápido: respuesta a uso elevado de CPU o memoria
- Confirmar la alerta: verificar con Docker Dashboard o docker stats.
- Identificar el contenedor: listar procesos y revisar logs (docker logs
). - Reproducir localmente: si es posible, lanza la misma imagen en un entorno controlado.
- Mitigar temporalmente: reinicia el contenedor o limita sus recursos (docker update).
- Diagnóstico: usar strace/profiler dentro del contenedor o obtener heap/stack según el lenguaje.
- Persistir cambios: ajustar configuraciones, añadir límites en la plantilla de despliegue (docker-compose, Kubernetes).
- Revisar y cerrar: documentar causa raíz y acciones tomadas.
Criterios para escalar a Ops: si el reinicio no reduce consumo o si hay impacto en producción.
Checklist por rol
Desarrollador:
- Reproducir fallo localmente.
- Revisar variables de entorno y versiones de dependencias.
- Añadir límites locales de memoria/CPU si procede.
DevOps/Infra:
- Confirmar patrón de consumo y ventana afectada.
- Aplicar límites globales o reprogramar tareas cron pesadas.
- Configurar alertas y dashboards históricos.
QA:
- Ejecutar pruebas de carga con límites establecidos.
- Validar que el servicio degrada de manera controlada.
Soporte/Helpdesk:
- Obtener ID del contenedor y logs relevantes.
- Ejecutar docker stats y capturar salida.
- Escalar con evidencia a DevOps si el impacto es persistente.
Comparación rápida de herramientas de monitorización
| Herramienta | Mejores usos | Pros | Contras |
|---|---|---|---|
| Docker Desktop (Dashboard) | Debug rápido local | Integrado, fácil | Históricos limitados |
| Extensión Resource Usage | Inspecciones detalladas locales | Gráficas y filtros | Solo local, sin alertas externas |
| docker stats | Terminal y scripts | Ligero, sin UI | Sin históricos ni alertas |
| Portainer | Gestión de contenedores | UI multi-nodo, control | Requiere despliegue adicional |
| Prometheus + Grafana | Observabilidad a escala | Métricas históricas y alertas | Requiere instrumentación y almacenamiento |
Escoge según tu necesidad: si necesitas observabilidad a largo plazo y alertas, combina Prometheus/Grafana; para uso de día a día en portátil, el Dashboard y la extensión son suficientes.
Cuándo estas técnicas fallan (contrajemplos)
- Ambientes de producción distribuidos: Docker Desktop solo refleja el host local; no sirve para clústeres.
- Requerimientos de retención larga: ni docker stats ni el Dashboard almacenan métricas por semanas.
- Auditoría detallada de seguridad: estas herramientas no reemplazan soluciones de logging/monitoring conformes con auditoría.
Glosario (1 línea cada término)
- Contenedor: unidad ligera que empaqueta una aplicación y sus dependencias.
- Docker Desktop: aplicación para ejecutar Docker localmente en macOS/Windows.
- docker stats: comando para ver métricas en tiempo real de contenedores.
- Resource Usage: extensión de Docker Desktop para métricas visuales.
Preguntas frecuentes
¿Puedo establecer alertas con Docker Desktop?
Docker Desktop no tiene un sistema de alertas avanzado; para alertas automáticas integra Prometheus, Grafana o un servicio de monitoring.
¿Qué diferencia hay entre limitar memoria y limitar swap?
Limitar memoria (-m) fija la memoria máxima disponible; memory-swap controla si el contenedor puede usar swap adicional y cuánto.
¿Es seguro usar docker system prune en un equipo de desarrollo?
Sí, pero puede borrar imágenes y volúmenes que otras personas usan. Asegúrate de que no eliminas elementos necesarios antes de ejecutar el comando.
Resumen
Monitorizar CPU y memoria en Docker Desktop mejora la estabilidad de tus contenedores y del equipo. Usa el Dashboard para inspecciones rápidas, instala la extensión Resource Usage para vistas más detalladas y emplea docker stats para monitoreo desde la terminal. Define umbrales, sigue la mini-metodología propuesta y aplica el playbook cuando detectes picos. Para observabilidad a largo plazo, complementa con Prometheus/Grafana o una solución similar.
Principales acciones recomendadas:
- Empezar por el Dashboard y la extensión para visualizar en tiempo real.
- Añadir docker stats en scripts de diagnóstico.
- Establecer límites y limpiar recursos periódicamente.
- Integrar herramientas de observabilidad si necesitas históricos y alertas.
Materiales similares
Podman en Debian 11: instalación y uso
Apt-pinning en Debian: guía práctica
OptiScaler: inyectar FSR 4 en casi cualquier juego
Dansguardian + Squid NTLM en Debian Etch
Arreglar error de instalación Android en SD