Wie man den docker stack ls-Befehl verwendet, um Stacks aufzulisten

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 den Befehl docker stack ls verwenden, um Docker-Stacks (Docker-Stacks) aufzulisten. Wir beginnen damit, Docker Compose zu installieren, das für die Definition und Bereitstellung von Mehrcontaineranwendungen als Stacks unerlässlich ist. Anschließend stellen Sie mithilfe einer docker-compose.yml-Datei einen einfachen Webdienst-Stack (Webservice-Stack) bereit, um einen Stack zum Auflisten zu haben.

Nach der Bereitstellung erkunden Sie verschiedene Möglichkeiten, Stacks mit docker stack ls aufzulisten. Dazu gehört das Auflisten aller laufenden Stacks, das Auflisten von Stacks mit einem benutzerdefinierten Ausgabeformat zur Anzeige spezifischer Informationen und das Auflisten von Stacks im JSON-Format für die programmgesteuerte Verarbeitung.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") subgraph Lab Skills docker/ls -.-> lab-555235{{"Wie man den docker stack ls-Befehl verwendet, um Stacks aufzulisten"}} end

Alle Stacks auflisten

In diesem Schritt lernen Sie, wie Sie alle auf Ihrem System laufenden Docker-Stacks (Docker-Stacks) auflisten können. Ein Docker-Stack ist eine Sammlung von Diensten, die zusammen bereitgestellt werden. Bevor wir Stacks auflisten können, müssen wir Docker Compose installieren, das zur Definition und Ausführung von Docker-Anwendungen mit mehreren Containern verwendet wird.

Zunächst installieren wir Docker Compose. Wir laden die Docker Compose-Binary herunter und machen sie ausführbar.

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Der erste Befehl lädt die Docker Compose-Binary aus dem offiziellen GitHub-Repository herunter. $(uname -s) und $(uname -m) werden verwendet, um das Betriebssystem und die Architektur Ihres Computers zu ermitteln und sicherzustellen, dass Sie die richtige Binary herunterladen. Der zweite Befehl macht die heruntergeladene Datei ausführbar.

Nachdem Docker Compose installiert ist, überprüfen wir die Installation, indem wir die Version prüfen.

docker-compose --version

Im Ausgabeergebnis sollte die installierte Docker Compose-Version angezeigt werden.

Um das Auflisten von Stacks zu demonstrieren, müssen wir einen einfachen Stack bereitstellen. Wir erstellen eine docker-compose.yml-Datei, die einen einfachen Webdienst definiert.

nano ~/project/docker-compose.yml

Fügen Sie den folgenden Inhalt in die docker-compose.yml-Datei ein:

version: "3.8"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

Diese docker-compose.yml-Datei definiert einen einzelnen Dienst namens web, der das nginx:latest-Image verwendet und Port 80 auf dem Host auf Port 80 im Container abbildet.

Jetzt stellen wir diesen Stack mithilfe des Befehls docker stack deploy bereit. Wir nennen unseren Stack mywebstack.

docker stack deploy -c ~/project/docker-compose.yml mywebstack

Das -c-Flag gibt die zu verwendende Compose-Datei an, und mywebstack ist der Name, den wir unserem Stack geben. Sie werden eine Ausgabe sehen, die anzeigt, dass die Dienste erstellt und bereitgestellt werden.

Nach der Bereitstellung des Stacks können Sie alle laufenden Stacks mit dem Befehl docker stack ls auflisten.

docker stack ls

Dieser Befehl zeigt eine Liste aller bereitgestellten Stacks an, einschließlich des Stacknamens, der Anzahl der Dienste sowie der gewünschten und aktuellen Anzahl der Replikate für jeden Dienst. In der Ausgabe sollte mywebstack aufgeführt sein.

Stacks mit benutzerdefiniertem Format auflisten

Im vorherigen Schritt haben Sie gelernt, wie Sie alle bereitgestellten Docker-Stacks (Docker-Stacks) mit dem Standard-Ausgabeformat auflisten können. In diesem Schritt lernen Sie, wie Sie das Ausgabeformat des Befehls docker stack ls anpassen können, um nur die benötigten Informationen anzuzeigen.

Der Befehl docker stack ls unterstützt das --format-Flag, das es Ihnen ermöglicht, eine Go-Vorlage (Go template) anzugeben, um die Ausgabe zu formatieren. Dies ist nützlich, wenn Sie bestimmte Informationen extrahieren oder die Ausgabe mit anderen Tools integrieren möchten.

Beginnen wir damit, die Stack-Namen und die Anzahl der Dienste in jedem Stack aufzulisten. Hierfür können wir die Vorlagenfelder {{.Name}} und {{.Services}} verwenden.

docker stack ls --format "{{.Name}}: {{.Services}}"

In diesem Befehl gibt --format "{{.Name}}: {{.Services}}" an, dass Docker den Namen jedes Stacks gefolgt von einem Doppelpunkt und dann die Anzahl der Dienste ausgeben soll. Die {{.Name}} und {{.Services}} sind Platzhalter, die durch die tatsächlichen Werte für jeden Stack ersetzt werden.

Sie sollten eine Ausgabe ähnlich wie mywebstack: 1 sehen, die den Namen des Stacks und die Anzahl der enthaltenen Dienste angibt.

Sie können auch andere Felder in der Formatzeichenfolge aufnehmen. Beispielsweise listen wir den Stack-Namen und die gewünschte Anzahl der Replikate auf.

docker stack ls --format "Stack Name: {{.Name}}, Desired Replicas: {{.Desired}}"

Hier verwenden wir das Feld {{.Desired}}, um die gewünschte Anzahl der Replikate für die Dienste im Stack anzuzeigen.

Das --format-Flag ist sehr flexibel und ermöglicht es Ihnen, verschiedene Felder zu kombinieren und benutzerdefinierten Text hinzuzufügen. Eine Liste der verfügbaren Felder finden Sie in der Docker-Dokumentation für den Befehl docker stack ls.

Probieren wir noch ein weiteres Beispiel aus und listen den Stack-Namen und die aktuelle Anzahl der Replikate auf.

docker stack ls --format "Stack: {{.Name}}, Current Replicas: {{.Current}}"

Dieser Befehl verwendet das Feld {{.Current}}, um die aktuelle Anzahl der laufenden Replikate für die Dienste im Stack anzuzeigen.

Die Verwendung des --format-Flags ermöglicht es Ihnen, die Ausgabe von docker stack ls an Ihre spezifischen Anforderungen anzupassen, was die Verarbeitung und Analyse der Informationen über Ihre bereitgestellten Stacks erleichtert.

Stacks im JSON-Format auflisten

In den vorherigen Schritten haben Sie gelernt, wie Sie Docker-Stacks (Docker-Stacks) mit Standard- und benutzerdefinierten Formaten auflisten können. In diesem Schritt lernen Sie, wie Sie Docker-Stacks im JSON-Format auflisten können. Dies ist besonders nützlich, wenn Sie die Ausgabe programmgesteuert analysieren oder mit anderen Systemen integrieren müssen.

Der Befehl docker stack ls, wie viele andere Docker-Befehle, unterstützt die Option --format json, um die Ergebnisse als JSON-Array auszugeben.

Listen wir die bereitgestellten Stacks im JSON-Format auf.

docker stack ls --format json

Dieser Befehl gibt ein JSON-Array aus, wobei jedes Element im Array einen Docker-Stack darstellt und Informationen über den Stack enthält, wie z. B. seinen Namen, die Dienste, die gewünschten Replikate und die aktuellen Replikate.

Die Ausgabe sieht in etwa so aus (der genaue Inhalt hängt von den von Ihnen bereitgestellten Stacks ab):

[
  {
    "Name": "mywebstack",
    "Services": "1",
    "Desired": "1",
    "Current": "1"
  }
]

Diese JSON-Ausgabe ist strukturiert und kann leicht mit Skriptsprachen oder anderen Tools analysiert werden. Beispielsweise könnten Sie ein Tool wie jq verwenden, um bestimmte Felder aus der JSON-Ausgabe zu extrahieren.

Installieren wir jq, einen leichten und flexiblen Befehlszeilen-JSON-Prozessor.

sudo apt-get update
sudo apt-get install -y jq

Nachdem jq installiert ist, verwenden wir es, um nur die Namen der bereitgestellten Stacks aus der JSON-Ausgabe zu extrahieren.

docker stack ls --format json | jq '.[].Name'

In diesem Befehl leiten wir die JSON-Ausgabe von docker stack ls --format json an jq weiter. Das '.[].Name' ist ein jq-Filter, der das Name-Feld aus jedem Objekt im JSON-Array auswählt.

Als Ausgabe sollten Sie den Namen Ihres bereitgestellten Stacks, mywebstack, sehen.

Das Auflisten von Stacks im JSON-Format bietet eine strukturierte Möglichkeit, auf Stack-Informationen zuzugreifen, was für Automatisierungs- und Integrationszwecke unerlässlich ist.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Befehl docker stack ls verwenden können, um Docker-Stacks (Docker-Stacks) aufzulisten. Das Lab begann damit, Sie durch die Installation von Docker Compose zu führen, einer Voraussetzung für die Arbeit mit Docker-Stacks, und die Installation zu überprüfen. Anschließend haben Sie eine einfache docker-compose.yml-Datei erstellt, die einen grundlegenden Web-Service definiert, und ihn als Stack namens mywebstack mit docker stack deploy bereitgestellt.

Die folgenden Schritte, die in den bereitgestellten Inhalten nicht vollständig detailliert sind, hätten das Auflisten aller bereitgestellten Stacks mit docker stack ls, die Anpassung des Ausgabeformats zur Anzeige spezifischer Informationen und das Auflisten von Stacks im JSON-Format für die programmgesteuerte Verarbeitung abgedeckt. Diese praktische Erfahrung hat Ihnen praktisches Wissen über die Verwaltung und Inspektion von Docker-Stacks mit dem Befehl docker stack ls und seinen verschiedenen Optionen vermittelt.