# docker container stats

**Descripción:** Muestra una transmisión en vivo de las estadísticas de uso de recursos de los contenedores

**Uso:** `docker container stats [OPTIONS] [CONTAINER...]`

**Alias:** `docker stats`








## Descripción

El comando `docker stats` devuelve una transmisión de datos en vivo para los contenedores en ejecución. Para
limitar los datos a uno o más contenedores específicos, especifica una lista de nombres de contenedores
o IDs separados por un espacio. Puedes especificar un contenedor detenido, pero los contenedores
detenidos no devuelven ningún dato.

Si necesitas información más detallada sobre el uso de recursos de un contenedor, utiliza
el endpoint de la API `/containers/(id)/stats`.

> [!NOTE]
> En Linux, la CLI de Docker reporta el uso de memoria restando el uso de caché del
> uso total de memoria. La API no realiza dicho cálculo, sino que
> proporciona el uso total de memoria y la cantidad de la caché para que los clientes
> puedan usar los datos según sea necesario. El uso de la caché se define como el valor del
> campo `total_inactive_file` en el archivo `memory.stat` en hosts con cgroup v1.
>
> En Docker 19.03 y versiones anteriores, el uso de caché se definía como el valor del campo `cache`.
> En hosts con cgroup v2, el uso de caché se define como el valor del campo `inactive_file`.

> [!NOTE]
> La columna `PIDS` contiene el número de procesos y subprocesos (threads) del kernel creados
> por ese contenedor. "Threads" es el término utilizado por el kernel de Linux. Otros términos equivalentes
> son "proceso ligero" o "tarea del kernel", etc. Un número grande en la columna `PIDS` combinado con
> un número pequeño de procesos (según lo reportado por `ps` o `top`) puede indicar que algo en el
> contenedor está creando muchos subprocesos.


## Opciones

| Opción                                                        | Predeterminado                                        | Descripción                                                                                                                                    |
| ------------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|  | `-a`, `--all` |  |  Muestra todos los contenedores (por defecto solo muestra los que están en ejecución) |

 | `--format` |  |  Formatea la salida utilizando una plantilla personalizada:<br>'table':            Imprime la salida en formato de tabla con encabezados de columna (por defecto)<br>'table TEMPLATE':   Imprime la salida en formato de tabla utilizando la plantilla Go provista<br>'json':             Imprime en formato JSON<br>'TEMPLATE':         Imprime la salida utilizando la plantilla Go provista.<br>Consulta https://docs-docker.esdocu.com/go/formatting/ para obtener más información sobre cómo dar formato a la salida con plantillas |

 | `--no-stream` |  |  Desactiva la transmisión de estadísticas y solo obtiene el primer resultado |

 | `--no-trunc` |  |  No trunca la salida |




## Ejemplos

Ejecución de `docker stats` en todos los contenedores en ejecución contra un demonio Linux.

```console
$ docker stats

CONTAINER ID        NAME                                    CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
b95a83497c91        awesome_brattain                        0.28%               5.629MiB / 1.952GiB   0.28%               916B / 0B           147kB / 0B          9
67b2525d8ad1        foobar                                  0.00%               1.727MiB / 1.952GiB   0.09%               2.48kB / 0B         4.11MB / 0B         2
e5c383697914        test-1951.1.kay7x1lh1twk9c0oig50sd5tr   0.00%               196KiB / 1.952GiB     0.01%               71.2kB / 0B         770kB / 0B          1
4bda148efbc0        random.1.vnc8on831idyr42slu578u3cr      0.00%               1.672MiB / 1.952GiB   0.08%               110kB / 0B          578kB / 0B          2
```

Si no [especificas una cadena de formato utilizando `--format`](#format), se muestran las siguientes columnas.

| Nombre de columna         | Descripción                                                                                   |
|---------------------------|-----------------------------------------------------------------------------------------------|
| `CONTAINER ID` y `Name`   | el ID y el nombre del contenedor                                                              |
| `CPU %` y `MEM %`         | el porcentaje de CPU y memoria del host que el contenedor está utilizando                      |
| `MEM USAGE / LIMIT`       | la memoria total que el contenedor está utilizando y la cantidad total de memoria que tiene permitido usar |
| `NET I/O`                 | la cantidad de datos que el contenedor ha recibido y enviado a través de su interfaz de red   |
| `BLOCK I/O`               | la cantidad de datos que el contenedor ha escrito y leído de dispositivos de bloque en el host |
| `PIDs`                    | el número de procesos o subprocesos que el contenedor ha creado                               |

Ejecución de `docker stats` en múltiples contenedores por nombre e ID contra un demonio Linux.

```console
$ docker stats awesome_brattain 67b2525d8ad1

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
b95a83497c91        awesome_brattain    0.28%               5.629MiB / 1.952GiB   0.28%               916B / 0B           147kB / 0B          9
67b2525d8ad1        foobar              0.00%               1.727MiB / 1.952GiB   0.09%               2.48kB / 0B         4.11MB / 0B         2
```

Ejecución de `docker stats` en un contenedor con el nombre `nginx` y obtención de la salida en formato `json`.

```console
$ docker stats nginx --no-stream --format "{{ json . }}"
{"BlockIO":"0B / 13.3kB","CPUPerc":"0.03%","Container":"nginx","ID":"ed37317fbf42","MemPerc":"0.24%","MemUsage":"2.352MiB / 982.5MiB","Name":"nginx","NetIO":"539kB / 606kB","PIDs":"2"}
```

Ejecución de `docker stats` con formato personalizado en todos los contenedores (en ejecución y detenidos).

```console
$ docker stats --all --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" fervent_panini 5acfcb1b4fd1 humble_visvesvaraya big_heisenberg

CONTAINER                CPU %               MEM USAGE / LIMIT
fervent_panini           0.00%               56KiB / 15.57GiB
5acfcb1b4fd1             0.07%               32.86MiB / 15.57GiB
humble_visvesvaraya      0.00%               0B / 0B
big_heisenberg           0.00%               0B / 0B
```

`humble_visvesvaraya` y `big_heisenberg` son contenedores detenidos en el ejemplo anterior.

Ejecución de `docker stats` en todos los contenedores en ejecución contra un demonio Windows.

```powershell
PS E:\> docker stats
CONTAINER ID        CPU %               PRIV WORKING SET    NET I/O             BLOCK I/O
09d3bb5b1604        6.61%               38.21 MiB           17.1 kB / 7.73 kB   10.7 MB / 3.57 MB
9db7aa4d986d        9.19%               38.26 MiB           15.2 kB / 7.65 kB   10.6 MB / 3.3 MB
3f214c61ad1d        0.00%               28.64 MiB           64 kB / 6.84 kB     4.42 MB / 6.93 MB
```

Ejecución de `docker stats` en múltiples contenedores por nombre e ID contra un demonio Windows.

```powershell
PS E:\> docker ps -a
CONTAINER ID        NAME                IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
3f214c61ad1d        awesome_brattain    nanoserver          "cmd"               2 minutes ago       Up 2 minutes                            big_minsky
9db7aa4d986d        mad_wilson          windowsservercore   "cmd"               2 minutes ago       Up 2 minutes                            mad_wilson
09d3bb5b1604        fervent_panini      windowsservercore   "cmd"               2 minutes ago       Up 2 minutes                            affectionate_easley

PS E:\> docker stats 3f214c61ad1d mad_wilson
CONTAINER ID        NAME                CPU %               PRIV WORKING SET    NET I/O             BLOCK I/O
3f214c61ad1d        awesome_brattain    0.00%               46.25 MiB           76.3 kB / 7.92 kB   10.3 MB / 14.7 MB
9db7aa4d986d        mad_wilson          9.59%               40.09 MiB           27.6 kB / 8.81 kB   17 MB / 20.1 MB
```

### Formatear la salida (--format) {#format}

La opción de formato (`--format`) imprime de forma estética la salida del contenedor
utilizando una plantilla Go.

A continuación se enumeran los marcadores de posición válidos para la plantilla Go:

| Marcador de posición | Descripción                                  |
|----------------------|----------------------------------------------|
| `.Container`         | Nombre o ID del contenedor (entrada del usuario) |
| `.Name`              | Nombre del contenedor                         |
| `.ID`                | ID del contenedor                            |
| `.CPUPerc`           | Porcentaje de CPU                            |
| `.MemUsage`          | Uso de memoria                               |
| `.NetIO`             | E/S de red                                   |
| `.BlockIO`           | E/S de bloque                                 |
| `.MemPerc`           | Porcentaje de memoria (no disponible en Windows) |
| `.PIDs`              | Número de PIDs (no disponible en Windows)    |

Cuando se utiliza la opción `--format`, el comando `stats` escribe
los datos exactamente como lo declara la plantilla o, cuando se utiliza la
directiva `table`, incluye también los encabezados de las columnas.

El siguiente ejemplo utiliza una plantilla sin encabezados y escribe las
entradas `Container` y `CPUPerc` separadas por dos puntos (`:`) para todos los contenedores:

```console
$ docker stats --format "{{.Container}}: {{.CPUPerc}}"

09d3bb5b1604: 6.61%
9db7aa4d986d: 9.19%
3f214c61ad1d: 0.00%
```

Para listar las estadísticas de todos los contenedores con su nombre, porcentaje de CPU y uso de memoria
en formato de tabla puedes utilizar:

```console
$ docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"

CONTAINER           CPU %               PRIV WORKING SET
1285939c1fd3        0.07%               796 KiB / 64 MiB
9c76f7834ae2        0.07%               2.746 MiB / 64 MiB
d1ea048f04e4        0.03%               4.583 MiB / 64 MiB
```

El formato predeterminado es el siguiente:

En Linux:

    "table {{.ID}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}\t{{.NetIO}}\t{{.BlockIO}}\t{{.PIDs}}"

En Windows:

    "table {{.ID}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}\t{{.BlockIO}}"



