Wie man den docker container stats Befehl zur Überwachung von Container-Ressourcen verwendet

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie die Ressourcennutzung Ihrer Docker-Container effektiv mit dem Befehl docker stats überwachen können. Sie werden untersuchen, wie Sie die Live-Ressourcennutzung für alle laufenden Container sowie für bestimmte Container anhand von Namen oder ID anzeigen können.

Darüber hinaus werden Sie entdecken, wie Sie die Ressourcennutzung für alle Container einschließlich der beendeten anzeigen und wie Sie das Ausgabeformat des docker stats-Befehls mit einer benutzerdefinierten Vorlage anpassen können. Abschließend lernen Sie, wie Sie eine einzelne Momentaufnahme der Container-Statistiken ohne kontinuierlichen Datenstrom erhalten können.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/top("Display Running Processes in Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/ps -.-> lab-555123{{"Wie man den docker container stats Befehl zur Überwachung von Container-Ressourcen verwendet"}} docker/stop -.-> lab-555123{{"Wie man den docker container stats Befehl zur Überwachung von Container-Ressourcen verwendet"}} docker/top -.-> lab-555123{{"Wie man den docker container stats Befehl zur Überwachung von Container-Ressourcen verwendet"}} docker/pull -.-> lab-555123{{"Wie man den docker container stats Befehl zur Überwachung von Container-Ressourcen verwendet"}} end

Live-Ressourcennutzung für alle laufenden Container anzeigen

In diesem Schritt lernen Sie, wie Sie die Live-Ressourcennutzung für alle laufenden Docker-Container mit dem Befehl docker stats anzeigen können. Dieser Befehl liefert einen Echtzeit-Datenstrom der Container-Ressourcennutzung, einschließlich CPU, Arbeitsspeicher, Netzwerk-I/O und Block-I/O.

Zuerst starten wir einige Container, damit wir etwas zum Überwachen haben. Wir verwenden das ubuntu-Image und führen sie im Detached-Modus (-d) aus, sodass sie im Hintergrund laufen. Zusätzlich vergeben wir Namen zur einfacheren Identifizierung.

docker pull ubuntu
docker run -d --name container1 ubuntu sleep infinity
docker run -d --name container2 ubuntu sleep infinity
docker run -d --name container3 ubuntu sleep infinity

Nun, da einige Container laufen, können wir den Befehl docker stats verwenden, um deren Ressourcennutzung einzusehen.

docker stats

Sie sehen eine Tabelle mit Informationen zu jedem laufenden Container, einschließlich ID, Name, CPU-Auslastung, Speichernutzung, Netzwerk-I/O, Block-I/O und PIDs. Diese Ausgabe wird in Echtzeit aktualisiert.

Um den docker stats-Befehl zu beenden, drücken Sie Strg+C.

Live-Ressourcennutzung für bestimmte Container nach Name oder ID anzeigen

Im vorherigen Schritt haben Sie gelernt, wie Sie die Ressourcennutzung für alle laufenden Container anzeigen. In diesem Schritt lernen Sie, wie Sie die Ressourcennutzung für bestimmte Container anzeigen, indem Sie deren Namen oder IDs dem docker stats-Befehl übergeben.

Um die Statistiken für einen einzelnen Container anzuzeigen, geben Sie einfach dessen Namen oder ID nach dem docker stats-Befehl an. Zum Beispiel, um die Statistiken für container1 zu sehen:

docker stats container1

Sie sehen dann die Echtzeit-Ressourcennutzung nur für container1. Drücken Sie Strg+C, um die Ausgabe zu beenden.

Sie können auch mehrere Container-Namen oder IDs angeben, um die Statistiken für mehrere Container gleichzeitig einzusehen. Zum Beispiel für container1 und container2:

docker stats container1 container2

Dadurch wird die Echtzeit-Ressourcennutzung für beide Container (container1 und container2) angezeigt. Drücken Sie Strg+C, um die Ausgabe zu stoppen.

Die Verwendung von Container-Namen ist in der Regel einfacher zu merken und zu handhaben als Container-IDs, insbesondere wenn mehrere Container laufen.

Ressourcennutzung für alle Container anzeigen (laufende und beendete)

Standardmäßig zeigt docker stats nur Statistiken für laufende Container an. In diesem Schritt lernen Sie, wie Sie die Ressourcennutzung für alle Container anzeigen können, einschließlich der beendeten, indem Sie das Flag -a oder --all verwenden.

Zuerst beenden wir einen der Container, die wir in den vorherigen Schritten gestartet haben.

docker stop container3

Wenn Sie nun docker stats ohne Flags ausführen, sehen Sie nur container1 und container2, da diese noch laufen.

docker stats

Drücken Sie Strg+C, um die Ausgabe zu beenden.

Um die Statistiken für alle Container anzuzeigen, einschließlich des beendeten container3, verwenden Sie das -a-Flag:

docker stats -a

Jetzt werden container1, container2 und container3 aufgelistet. Für beendete Container zeigen die meisten Ressourcenfelder 0% oder 0B an, da sie keine Ressourcen mehr verbrauchen.

Dies ist nützlich, um einen vollständigen Überblick über alle Container auf Ihrem System und deren letzte bekannte Ressourcennutzung vor dem Beenden zu erhalten.

Ausgabe der Container-Statistiken mit einer benutzerdefinierten Vorlage formatieren

In diesem Schritt lernen Sie, wie Sie die Ausgabe des docker stats-Befehls mithilfe einer benutzerdefinierten Go-Vorlage formatieren können. Dies ermöglicht es Ihnen, nur die benötigten Informationen in einem leicht lesbaren oder verarbeitbaren Format anzuzeigen.

Der docker stats-Befehl unterstützt das Flag --format, das eine Go-Template-Zeichenkette als Argument akzeptiert. Sie können verschiedene Platzhalter in der Vorlage verwenden, um unterschiedliche Container-Informationen darzustellen. Einige gängige Platzhalter sind:

  • .ContainerID: Die ID des Containers
  • .Name: Der Name des Containers
  • .CPUPerc: Die CPU-Auslastung in Prozent
  • .MemUsage: Der Speicherverbrauch
  • .NetIO: Die Netzwerk-I/O
  • .BlockIO: Die Block-I/O
  • .PIDs: Die Anzahl der PIDs

Versuchen wir, die Ausgabe so zu formatieren, dass nur der Containername, die CPU-Auslastung und der Speicherverbrauch angezeigt werden.

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

In diesem Befehl:

  • --format gibt an, dass wir ein benutzerdefiniertes Format verwenden möchten
  • "{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" ist die Go-Template-Zeichenkette
    • {{.Name}} zeigt den Containernamen an
    • \t fügt ein Tabulatorzeichen zur Trennung ein
    • {{.CPUPerc}} zeigt die CPU-Auslastung in Prozent an
    • {{.MemUsage}} zeigt den Speicherverbrauch an

Sie sehen einen Live-Stream mit Containername, CPU-Auslastung und Speicherverbrauch, durch Tabulatoren getrennt. Drücken Sie Strg+C, um die Ausgabe zu beenden.

Sie können mit verschiedenen Platzhaltern und Formatierungen experimentieren, um die gewünschte Ausgabe zu erhalten. Zum Beispiel, um die Container-ID und Netzwerk-I/O einzubeziehen:

docker stats --format "ID: {{.ContainerID}}\tName: {{.Name}}\tNetIO: {{.NetIO}}"

Dies bietet eine individuell angepasste Ansicht der Container-Statistiken.

Einzelne Momentaufnahme der Container-Statistiken ohne Stream abrufen

Standardmäßig liefert docker stats einen Live-Stream der Ressourcennutzung. Manchmal benötigen Sie jedoch nur eine einzelne Momentaufnahme der aktuellen Statistiken ohne kontinuierliche Aktualisierungen. In diesem Schritt lernen Sie, wie Sie dies mit dem Flag --no-stream erreichen.

Das Flag --no-stream weist docker stats an, die Statistiken einmalig zu erfassen und dann zu beenden, anstatt die Ausgabe kontinuierlich zu aktualisieren.

Lassen Sie uns eine einzelne Momentaufnahme der Statistiken für alle laufenden Container abrufen:

docker stats --no-stream

Sie sehen die Tabelle mit den Container-Statistiken einmalig erscheinen, dann wird der Befehl beendet. Dies ist nützlich für Skripte oder wenn Sie nur einen schnellen Überblick über die aktuelle Ressourcennutzung benötigen.

Sie können --no-stream mit anderen Flags kombinieren, z.B. mit -a, um eine Momentaufnahme aller Container (laufende und beendete) zu sehen:

docker stats -a --no-stream

Dadurch wird eine einzelne Momentaufnahme aller Container angezeigt.

Sie können es auch mit der Angabe spezifischer Container kombinieren:

docker stats container1 container2 --no-stream

Dies liefert Ihnen eine einzelne Momentaufnahme der Statistiken für container1 und container2.

Die Verwendung von --no-stream ist effizient, wenn Sie keine Echtzeit-Updates benötigen und nur den aktuellen Zustand der Ressourcennutzung erfassen möchten.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Befehl docker stats effektiv nutzen können, um die Ressourcennutzung Ihrer Docker-Container zu überwachen. Sie begannen damit, die Live-Ressourcennutzung für alle laufenden Container anzuzeigen und beobachteten Echtzeit-Datenströme für CPU, Arbeitsspeicher, Netzwerk-I/O und Block-I/O.

Anschließend verfeinerten Sie Ihre Überwachung, indem Sie sich auf bestimmte Container konzentrierten und deren individuelle Ressourcennutzung über deren Namen oder IDs einsehen. Dies ermöglichte eine gezielte Analyse der Container-Performance.