Wie man den docker service ls-Befehl verwendet, um Dienste 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 service ls effektiv nutzen können, um Dienste (Services), die in einem Docker Swarm laufen, zu verwalten und zu untersuchen. Sie beginnen damit, alle Dienste in Ihrem Swarm aufzulisten, um sicherzustellen, dass Sie die Ausgabe des Befehls und die von ihm bereitgestellten Informationen grundlegend verstehen.

Basierend auf der einfachen Auflistung werden Sie dann leistungsstarke Filteroptionen erkunden. Dazu gehört das Filtern von Diensten anhand ihres Namens, was Ihnen ermöglicht, bestimmte Dienste schnell zu finden. Sie lernen auch, wie Sie nach Dienstmodus (z. B. repliziert oder global) und nach Labels filtern können. Labels sind Schlüssel-Wert-Paare, die zur Organisation und Identifizierung von Diensten verwendet werden. Schließlich entdecken Sie, wie Sie die Ausgabe des Befehls docker service ls formatieren können, um die Informationen so anzuzeigen, dass sie Ihren Bedürfnissen am besten entsprechen. Dies erleichtert das Parsen und Analysieren von Dienstdetails.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") subgraph Lab Skills docker/ls -.-> lab-555227{{"Wie man den docker service ls-Befehl verwendet, um Dienste aufzulisten"}} docker/pull -.-> lab-555227{{"Wie man den docker service ls-Befehl verwendet, um Dienste aufzulisten"}} docker/info -.-> lab-555227{{"Wie man den docker service ls-Befehl verwendet, um Dienste aufzulisten"}} end

Auflisten aller Dienste (Services) im Swarm

In diesem Schritt lernen Sie, wie Sie alle Dienste auflisten können, die in einem Docker Swarm laufen. Bevor Sie die Dienste auflisten, müssen Sie einen Docker Swarm initialisiert haben und mindestens einen Dienst laufen lassen.

Zunächst initialisieren wir einen Docker Swarm, falls er noch nicht initialisiert ist. Sie können den Swarm-Status mit dem Befehl docker info überprüfen. Wenn die Ausgabe "Swarm: active" enthält, ist der Swarm bereits initialisiert. Andernfalls müssen Sie ihn initialisieren.

docker info

Wenn der Swarm nicht aktiv ist, initialisieren Sie ihn:

docker swarm init

Jetzt erstellen wir einen einfachen Dienst, den wir auflisten können. Wir werden einen Dienst namens my-web-service mit dem nginx-Image erstellen. Da wir eine frische Umgebung verwenden, müssen wir zunächst das nginx-Image herunterladen.

docker pull nginx

Jetzt erstellen wir den Dienst:

docker service create --name my-web-service -p 80:80 nginx

Dieser Befehl erstellt einen Dienst namens my-web-service aus dem nginx-Image und veröffentlicht Port 80 des Containers auf Port 80 des Hosts.

Um alle Dienste im Swarm aufzulisten, verwenden Sie den Befehl docker service ls. Dieser Befehl zeigt Informationen über die Dienste an, einschließlich ihrer ID, ihres Namens, des Modus, der Replikate und des Images, das sie verwenden.

docker service ls

Die Ausgabe zeigt den von Ihnen gerade erstellten my-web-service. Sie sollten seine ID, seinen Namen, den Modus (replicated), die Anzahl der Replikate (normalerweise standardmäßig 1) und das Image (nginx) sehen.

Filtern von Diensten (Services) nach Name

In diesem Schritt lernen Sie, wie Sie die Liste der Dienste anhand ihres Namens filtern können, indem Sie den Befehl docker service ls mit der Option --filter verwenden. Dies ist nützlich, wenn viele Dienste laufen und Sie nur Informationen über einen bestimmten Dienst oder eine Gruppe von Diensten mit ähnlichen Namen sehen möchten.

Die grundlegende Syntax für das Filtern nach Name lautet docker service ls --filter name=<service_name>. Sie können den vollständigen Namen des Dienstes oder einen Teil des Namens angeben.

Im vorherigen Schritt haben wir einen Dienst namens my-web-service erstellt. Verwenden wir nun das Filter, um nur diesen Dienst anzuzeigen.

docker service ls --filter name=my-web-service

Die Ausgabe sollte nur die Zeile anzeigen, die dem my-web-service entspricht.

Sie können auch Teilnamen zum Filtern verwenden. Beispielsweise würden, wenn Sie Dienste namens my-web-service-1 und my-web-service-2 hätten, das Filtern mit name=my-web beide Dienste anzeigen. In unserer aktuellen Einrichtung wird das Filtern mit name=my-web weiterhin den my-web-service anzeigen.

docker service ls --filter name=my-web

Dieser Befehl zeigt, wie man einen Teilnamen zum Filtern verwendet. Die Ausgabe sollte weiterhin den my-web-service auflisten.

Das Filtern nach Name ist eine schnelle Möglichkeit, die Liste der Dienste einzugrenzen und die Informationen über einen bestimmten Dienst zu finden, ohne die gesamte Liste durchsuchen zu müssen.

Filtern von Diensten (Services) nach Modus

In diesem Schritt lernen Sie, wie Sie die Liste der Dienste anhand ihres Modus filtern können, indem Sie den Befehl docker service ls mit der Option --filter verwenden. Docker Swarm-Dienste können in zwei Modi ausgeführt werden: replicated und global.

  • Replicated (repliziert): Dies ist der Standardmodus. Der Swarm-Manager plant eine festgelegte Anzahl von Replikaten der Dienstaufgabe auf verfügbaren Knoten.
  • Global (global): Der Swarm führt eine Aufgabe für den Dienst auf jedem verfügbaren Knoten aus.

Die grundlegende Syntax für das Filtern nach Modus lautet docker service ls --filter mode=<mode>. Sie können entweder replicated oder global als Modus verwenden.

In den vorherigen Schritten haben wir einen Dienst namens my-web-service erstellt, der standardmäßig im replicated-Modus läuft. Filtern wir die Dienste, um nur diejenigen anzuzeigen, die im replicated-Modus laufen.

docker service ls --filter mode=replicated

Die Ausgabe sollte my-web-service anzeigen, da es sich um einen replizierten Dienst handelt.

Jetzt versuchen wir, Dienste im global-Modus zu filtern. Da wir keine globalen Dienste erstellt haben, sollte dieser Befehl keine Dienste anzeigen.

docker service ls --filter mode=global

Die Ausgabe dieses Befehls sollte nur die Kopfzeile und keine Dienst-Einträge anzeigen, da keine globalen Dienste laufen.

Das Filtern nach Modus ist hilfreich, wenn Sie nur Dienste eines bestimmten Typs sehen möchten, beispielsweise, um den Status aller Ihrer globalen Dienste zu überprüfen, die auf jedem Knoten laufen sollen.

Filtern von Diensten (Services) nach Label

In diesem Schritt lernen Sie, wie Sie die Liste der Dienste anhand von Labels filtern können, indem Sie den Befehl docker service ls mit der Option --filter verwenden. Labels sind Schlüssel-Wert-Paare, die Sie an Docker-Objekte, einschließlich Diensten, anhängen können, um sie zu organisieren und zu identifizieren.

Die grundlegende Syntax für das Filtern nach Label lautet docker service ls --filter label=<key>=<value>. Sie können nach einem bestimmten Label-Schlüssel und -Wert filtern oder einfach nach der Existenz eines Label-Schlüssels.

Zunächst aktualisieren wir unseren bestehenden my-web-service, um ein Label hinzuzufügen. Wir fügen dem Dienst das Label environment=development hinzu.

docker service update --label-add environment=development my-web-service

Dieser Befehl aktualisiert den my-web-service und fügt das angegebene Label hinzu.

Jetzt filtern wir die Dienste, um nur diejenigen anzuzeigen, die das Label environment=development haben.

docker service ls --filter label=environment=development

Die Ausgabe sollte my-web-service anzeigen, da wir diesem Dienst gerade dieses Label hinzugefügt haben.

Sie können auch einfach nach der Existenz eines Label-Schlüssels filtern, unabhängig von seinem Wert. Beispielsweise, um alle Dienste aufzulisten, die das environment-Label haben:

docker service ls --filter label=environment

Dieser Befehl listet alle Dienste auf, die das environment-Label haben, unabhängig von seinem Wert. In unserem Fall wird er weiterhin my-web-service anzeigen.

Das Filtern nach Labels ist eine leistungsstarke Methode, Dienste zu verwalten und abzufragen, insbesondere in größeren Swarms, in denen Sie Labels verwenden können, um Dienste nach Umgebung, Team oder Anwendung zu kategorisieren.

Formatieren der Ausgabe der Dienstliste

In diesem Schritt lernen Sie, wie Sie die Ausgabe des Befehls docker service ls mithilfe der Option --format formatieren können. Dies ermöglicht es Ihnen, die angezeigten Informationen und das Format, in dem sie präsentiert werden, anzupassen. Dies ist besonders nützlich für Skripte oder das Generieren von Berichten.

Die Option --format nutzt das text/template-Paket von Go. Sie können die Felder angeben, die Sie anzeigen möchten, und wie sie formatiert werden sollen. Häufige Felder für Dienste sind .ID, .Name, .Mode, .Replicas und .Image.

Beginnen wir damit, nur die Dienst-ID und den Namen anzuzeigen, getrennt durch einen Tabulator.

docker service ls --format "{{.ID}}\t{{.Name}}"

Die Ausgabe zeigt die ID und den Namen von my-web-service, getrennt durch ein Tabulatorzeichen.

Jetzt zeigen wir den Dienstnamen, das Image und den Modus in einem lesbareren Format an, vielleicht wie eine Tabelle ohne die Standardüberschrift.

docker service ls --format "table {{.Name}}\t{{.Image}}\t{{.Mode}}"

Das Verwenden von table am Anfang der Formatzeichenfolge teilt Docker mit, die Ausgabe als Tabelle zu formatieren. Die Felder werden durch Tabulatoren (\t) getrennt.

Sie können auch das JSON-Format verwenden, das für die programmgesteuerte Verarbeitung sehr nützlich ist.

docker service ls --format json

Dieser Befehl gibt die Dienstinformationen im JSON-Format aus.

Das Formatieren der Ausgabe gibt Ihnen Flexibilität bei der Ansicht und Nutzung der Dienstinformationen. Sie können bestimmte Felder auswählen, die Trennzeichen ändern und in verschiedenen Formaten wie Tabelle oder JSON ausgeben.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Befehl docker service ls verwenden können, um die in einem Docker Swarm laufenden Dienste (Services) aufzulisten. Sie haben zunächst sichergestellt, dass ein Docker Swarm initialisiert wurde, und einen Beispiel-Dienst erstellt. Anschließend haben Sie docker service ls verwendet, um alle laufenden Dienste anzuzeigen und das grundlegende Ausgabeformat zu verstehen, das die Dienst-ID, den Namen, den Modus, die Replikanzahl und das Image umfasst.

Darüber hinaus haben Sie untersucht, wie Sie die Dienstliste mithilfe der Option --filter filtern können. Sie haben gelernt, Dienste gezielt nach ihrem Namen zu filtern, was für die Verwaltung einer großen Anzahl von Diensten und die Konzentration auf relevante Informationen unerlässlich ist.