docker stats în Docker

Containere Docker 1.5+

Afișează în timp real consumul de CPU, memorie, rețea și disc al containerelor.

Sintaxă comandă
docker stats [opțiuni] [container...]

Ce face docker stats

Comanda docker stats afișează un tabel actualizat continuu cu resursele folosite de fiecare container: procentul de CPU, memoria folosită față de limită, traficul de rețea, operațiile pe disc și numărul de procese (PIDS).

Fără argumente arată toate containerele care rulează; poți limita afișarea la anumite containere dându-le numele. Procentul de CPU se raportează la un singur nucleu, deci pe o mașină cu 4 nuclee poate ajunge la 400%.

Pentru scripturi sau monitorizare punctuală, opțiunea --no-stream afișează o singură măsurătoare și iese.

Opțiuni și argumente

Opțiune / Parametru Descriere
container Limitează afișarea la containerele indicate.
-a, --all Include și containerele oprite (cu valori zero).
--no-stream Afișează o singură dată și iese.
--format Șablon Go, de exemplu "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}".
--no-trunc Nu trunchia ID-urile.

Exemple

Exemplul 1: O singură măsurătoare pentru toate containerele

Coloana MEM USAGE / LIMIT arată limita setată cu --memory sau memoria totală a gazdei.

docker stats --no-stream

Ieșire în terminal

CONTAINER ID   NAME   CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS
9f3c2a1b7e6d   web    0.00%     9.367MiB / 7.667GiB   0.12%     15.2kB / 48.9kB   0B / 8.19kB       5
c1d2e3f4a5b6   db     0.42%     41.82MiB / 7.667GiB   0.53%     1.21MB / 2.34MB   12.3MB / 48.1MB   8
7a8b9c0d1e2f   api    2.17%     118.4MiB / 512MiB     23.13%    2.45MB / 1.87MB   4.1MB / 0B        5

Exemplul 2: Format personalizat

Doar numele, CPU și memoria.

docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

Ieșire în terminal

NAME      CPU %     MEM USAGE / LIMIT
web       0.00%     9.367MiB / 7.667GiB
db        0.42%     41.82MiB / 7.667GiB
api       2.17%     118.4MiB / 512MiB

Greșeli frecvente

  • Interpretarea unui CPU de peste 100% drept eroare: valoarea este cumulată pe toate nucleele folosite.
  • Containere fără limită de memorie, care pot consuma toată memoria gazdei. Setează limite cu --memory sau deploy.resources.limits în Compose.

Comenzi înrudite

  • docker ps: Listează containerele care rulează (sau toate, cu -a).
  • docker inspect: Afișează în format JSON toate detaliile de nivel jos ale unui obiect Docker.
  • docker logs: Afișează ieșirea standard (stdout și stderr) a unui container.