3.1 Comando docker stats
Docker ofrece una herramienta incorporada para monitorear contenedores en tiempo real: el comando docker stats
. Este comando te permite seguir las métricas de rendimiento clave de los contenedores, como el uso de CPU, memoria, red y disco. Vamos a ver cómo usar docker stats para obtener una visión general del estado y el rendimiento de tus contenedores.
El comando docker stats
proporciona estadísticas dinámicas sobre el funcionamiento de los contenedores en tiempo real. Muestra las siguientes métricas para cada contenedor:
- CPU %: porcentaje de uso del CPU por el contenedor.
- MEM USAGE / LIMIT: uso de memoria por el contenedor y el límite establecido.
- MEM %: porcentaje de uso de memoria por el contenedor.
- NET I/O: tráfico de red (entrante y saliente).
- BLOCK I/O: número de operaciones de entrada/salida en disco.
- PIDS: número de procesos ejecutados dentro del contenedor.
Uso principal del comando docker stats
Ejecutar el comando docker stats
sin parámetros muestra métricas para todos los contenedores en ejecución:
docker stats
Ejemplo de salida del comando docker stats
:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
d9b100f2f636 my_nginx 0.07% 1.24MiB / 1.952GiB 0.06% 1.68kB / 0B 0B / 12.3MB 2
fa3f3f3f3f3f my_postgres 2.13% 230.5MiB / 1.952GiB 11.52% 2.12MB / 2.05MB 85.6MB / 45.2MB 10
Monitoreo de un contenedor específico
Puedes seguir las métricas de un contenedor específico especificando su nombre o ID:
docker stats my_nginx
3.2 Configuración del comando docker stats
Parámetros del comando docker stats
El comando docker stats
admite varias opciones que te permiten personalizar los datos mostrados:
--all
o-a
: muestra métricas para todos los contenedores, incluidos los detenidos.--no-stream
: muestra las métricas una vez y finaliza la ejecución del comando.--format
: personaliza la salida de datos utilizando plantillas.
Ejemplo de uso del parámetro --no-stream
Muestra las métricas una vez para todos los contenedores:
docker stats --no-stream
Ejemplo de uso del parámetro --format
Salida de datos formateada:
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
Ejemplo de salida:
CONTAINER ID CPU % MEM USAGE / LIMIT
d9b100f2f636 0.07% 1.24MiB / 1.952GiB
fa3f3f3f3f3f 2.13% 230.5MiB / 1.952GiB
3.3 Uso práctico de docker stats
Ejemplo 1: seguimiento de la carga en el servidor
Puedes usar docker stats para monitorear los contenedores en el servidor y detectar contenedores con alta carga en la CPU o la memoria. Esto te ayudará a optimizar el uso de recursos y mejorar el rendimiento de las aplicaciones.
docker stats
Ejemplo 2: monitorear un contenedor específico durante las pruebas
Al probar nuevas versiones de aplicaciones o cambiar configuraciones, puedes rastrear las métricas de un contenedor específico para asegurarte de que no haya un impacto negativo en el rendimiento.
docker stats my_test_container
Ejemplo 3: integración con sistemas de monitoreo
Puedes integrar la salida de docker stats
con sistemas de monitoreo externos, usando la opción --format
para crear un formato de salida compatible con tu herramienta de monitoreo.
docker stats --no-stream --format "{{.Container}}: CPU {{.CPUPerc}}, MEM {{.MemUsage}}"
Limitaciones del comando docker stats
Aunque docker stats
proporciona métricas útiles en tiempo real, tiene algunas limitaciones:
- Métricas limitadas: el comando muestra solo métricas básicas y no proporciona información detallada sobre el estado de los contenedores.
- Uso manual: docker stats es conveniente para uso manual, pero para monitoreo automatizado y alertas es mejor usar herramientas especializadas como Prometheus y Grafana.
GO TO FULL VERSION