Wie man den docker secret ls-Befehl verwendet, um Geheimnisse 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 secret ls effektiv nutzen können, um Geheimnisse (Secrets) in Ihrer Docker Swarm-Umgebung zu verwalten und anzuzeigen. Sie beginnen damit, einen Docker Swarm zu initialisieren und ein Beispiel-Geheimnis zu erstellen. Anschließend werden Sie untersuchen, wie Sie alle vorhandenen Geheimnisse auflisten, die Ausgabe basierend auf Geheimnisnamen und Labels filtern und schließlich die Ausgabe der Geheimnisliste formatieren, um die Lesbarkeit zu verbessern und spezifische Informationen zu extrahieren. Diese praktische Erfahrung wird Sie mit den Fähigkeiten ausstatten, um Ihre sensiblen Daten, die als Docker-Geheimnisse gespeichert sind, effizient zu lokalisieren und zu verwalten.


Skills Graph

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

Alle Geheimnisse auflisten

In diesem Schritt lernen Sie, wie Sie alle Geheimnisse (Secrets) in Ihrer Docker-Umgebung auflisten können. Docker-Geheimnisse werden verwendet, um sensible Daten wie Passwörter, TLS-Zertifikate und SSH-Schlüssel zu verwalten. Sie werden sicher im Docker Swarm gespeichert und können von Diensten (Services) im Swarm abgerufen werden.

Bevor Sie die Geheimnisse auflisten, müssen Sie einen Docker Swarm initialisieren. Ein Swarm ist ein Cluster von Docker-Engines. Sie können aus Testzwecken einen Swarm auf einem einzelnen Knoten initialisieren.

Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus, um den Swarm zu initialisieren:

docker swarm init

Sie sollten eine Ausgabe sehen, die darauf hinweist, dass der Swarm initialisiert wurde und dass der aktuelle Knoten jetzt ein Manager ist.

Nachdem der Swarm initialisiert ist, können Sie ein Geheimnis erstellen. Wir werden ein einfaches Geheimnis namens my_secret mit dem Wert my_secret_value erstellen.

Führen Sie den folgenden Befehl aus, um das Geheimnis zu erstellen:

echo "my_secret_value" | docker secret create my_secret -

Dieser Befehl nimmt die Zeichenkette "my_secret_value", leitet sie an den Befehl docker secret create weiter und benennt das Geheimnis my_secret. Das Bindestrich - am Ende gibt an, dass der Geheimniswert von der Standardeingabe gelesen wird.

Jetzt listen wir die Geheimnisse auf, die in Ihrem Docker Swarm existieren. Sie können dazu den Befehl docker secret ls verwenden.

Führen Sie den folgenden Befehl aus:

docker secret ls

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die die ID, den Namen und die Erstellungszeit des von Ihnen gerade erstellten Geheimnisses anzeigt:

ID                          NAME        CREATED
<secret_id>                 my_secret   About a minute ago

Dieser Befehl listet alle Geheimnisse auf, die derzeit von Ihrem Docker Swarm verwaltet werden. In den nächsten Schritten lernen Sie, wie Sie diese Ausgabe filtern und formatieren können.

Geheimnisse nach Name filtern

In diesem Schritt lernen Sie, wie Sie die Liste der Geheimnisse (Secrets) anhand ihres Namens filtern können, indem Sie den Befehl docker secret ls mit der Option --filter verwenden. Dies ist nützlich, wenn Sie viele Geheimnisse haben und ein bestimmtes Geheimnis oder eine Gruppe von Geheimnissen mit ähnlichen Namen finden möchten.

Im vorherigen Schritt haben Sie ein Geheimnis namens my_secret erstellt. Lassen Sie uns ein weiteres Geheimnis erstellen, um die Filterung zu demonstrieren. Wir werden dieses another_secret nennen.

Führen Sie den folgenden Befehl aus, um das neue Geheimnis zu erstellen:

echo "another_value" | docker secret create another_secret -

Wenn Sie jetzt erneut docker secret ls ausführen, werden Sie beide Geheimnisse sehen:

docker secret ls

Die Ausgabe sieht in etwa so aus und zeigt sowohl my_secret als auch another_secret:

ID                          NAME            CREATED
<secret_id_1>               my_secret       About 2 minutes ago
<secret_id_2>               another_secret  About a few seconds ago

Um die Liste so zu filtern, dass nur das Geheimnis namens my_secret angezeigt wird, können Sie die Option --filter name=my_secret verwenden.

Führen Sie den folgenden Befehl aus:

docker secret ls --filter name=my_secret

Die Ausgabe zeigt jetzt nur das Geheimnis mit dem Namen my_secret:

ID                          NAME        CREATED
<secret_id_1>               my_secret   About 2 minutes ago

Sie können auch Teilnamen für die Filterung verwenden. Beispielsweise können Sie, um nach Geheimnissen zu filtern, deren Namen "secret" enthalten, einen ähnlichen Filter verwenden, obwohl der vorherige Befehl für die exakte Namensübereinstimmung genauer ist. Der name-Filter führt eine exakte Übereinstimmung durch.

Diese Filterfunktion ist in Umgebungen mit einer großen Anzahl von Geheimnissen sehr hilfreich und ermöglicht es Ihnen, die spezifischen Geheimnisse, mit denen Sie arbeiten müssen, schnell zu finden.

Geheimnisse nach Label filtern

In diesem Schritt lernen Sie, wie Sie Geheimnisse (Secrets) anhand von Labels filtern können. Labels sind Schlüssel-Wert-Paare, die Sie an Docker-Objekte, einschließlich Geheimnissen, anhängen können, um sie zu organisieren und zu kategorisieren. Das Filtern nach Labels ist eine leistungsstarke Methode, um Geheimnisse in komplexen Umgebungen zu verwalten.

Zunächst erstellen wir ein neues Geheimnis und fügen ihm während der Erstellung ein Label hinzu. Wir werden ein Geheimnis namens labeled_secret erstellen und das Label environment=production hinzufügen.

Führen Sie den folgenden Befehl aus, um das Geheimnis mit einem Label zu erstellen:

echo "production_value" | docker secret create --label environment=production labeled_secret -

Dieser Befehl ähnelt den vorherigen docker secret create-Befehlen, aber wir haben die Option --label environment=production hinzugefügt, um ein Label an das Geheimnis anzuhängen.

Jetzt erstellen wir ein weiteres Geheimnis mit einem anderen Label. Wir werden dieses dev_secret nennen und ihm das Label environment=development geben.

Führen Sie den folgenden Befehl aus:

echo "development_value" | docker secret create --label environment=development dev_secret -

Wenn Sie jetzt alle Geheimnisse mit docker secret ls auflisten, werden Sie alle drei Geheimnisse sehen:

docker secret ls

Die Ausgabe zeigt my_secret, another_secret, labeled_secret und dev_secret.

Um die Geheimnisse zu filtern und nur diejenigen anzuzeigen, die das Label environment=production haben, können Sie die Option --filter label=environment=production verwenden.

Führen Sie den folgenden Befehl aus:

docker secret ls --filter label=environment=production

In der Ausgabe sollten Sie nur das labeled_secret sehen:

ID                          NAME            CREATED
<secret_id_3>               labeled_secret  About a minute ago

Ähnlich können Sie, um nach Geheimnissen mit dem Label environment=development zu filtern, --filter label=environment=development verwenden.

Führen Sie den folgenden Befehl aus:

docker secret ls --filter label=environment=development

Dies zeigt nur das dev_secret:

ID                          NAME        CREATED
<secret_id_4>               dev_secret  About a minute ago

Sie können auch nach Geheimnissen filtern, die einen bestimmten Label-Schlüssel haben, unabhängig von seinem Wert, indem Sie --filter label=environment verwenden.

Führen Sie den folgenden Befehl aus:

docker secret ls --filter label=environment

Dies zeigt sowohl labeled_secret als auch dev_secret, da beide den Label-Schlüssel environment haben:

ID                          NAME            CREATED
<secret_id_3>               labeled_secret  About 2 minutes ago
<secret_id_4>               dev_secret      About 2 minutes ago

Das Filtern nach Labels ist eine flexible Methode, um Geheimnisse basierend auf Ihren eigenen definierten Kategorien zu verwalten und abzurufen.

Ausgabe der Geheimnisliste formatieren

In diesem Schritt lernen Sie, wie Sie die Ausgabe des Befehls docker secret ls mithilfe der Option --format formatieren können. Dies ermöglicht es Ihnen, die angezeigten Informationen und die Art ihrer Darstellung anzupassen, was für Skripte oder Berichterstellung nützlich ist.

Standardmäßig gibt docker secret ls eine Tabelle mit Spalten für ID, NAME und CREATED aus. Sie können dieses Format ändern, indem Sie die Option --format mit Go-Template-Syntax verwenden.

Beispielsweise können Sie, um nur die Namen der Geheimnisse anzuzeigen, das Format {{.Name}} verwenden.

Führen Sie den folgenden Befehl aus:

docker secret ls --format "{{.Name}}"

Die Ausgabe listet jetzt nur die Namen der Geheimnisse, jeweils in einer neuen Zeile:

my_secret
another_secret
labeled_secret
dev_secret

Sie können auch mehrere Felder angeben und sie als Tabelle formatieren. Beispielsweise können Sie, um die ID und den Namen durch ein Tabulatorzeichen getrennt anzuzeigen, table {{.ID}}\t{{.Name}} verwenden. Das Schlüsselwort table sorgt dafür, dass die Ausgabe in Spalten ausgerichtet ist.

Führen Sie den folgenden Befehl aus:

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

Die Ausgabe ist eine Tabelle mit zwei Spalten:

ID                          NAME
<secret_id_1>               my_secret
<secret_id_2>               another_secret
<secret_id_3>               labeled_secret
<secret_id_4>               dev_secret

Sie können die Informationen auch im JSON-Format ausgeben, was für die programmgesteuerte Verarbeitung sehr nützlich ist. Verwenden Sie das Format json.

Führen Sie den folgenden Befehl aus:

docker secret ls --format "json"

Die Ausgabe ist ein JSON-Array, wobei jedes Element ein Geheimnis darstellt:

[
  {
    "ID": "<secret_id_1>",
    "Name": "my_secret",
    "CreatedAt": "2023-10-27 10:00:00 +0000 UTC",
    "UpdatedAt": "2023-10-27 10:00:00 +0000 UTC",
    "Labels": {}
  },
  {
    "ID": "<secret_id_2>",
    "Name": "another_secret",
    "CreatedAt": "2023-10-27 10:01:00 +0000 UTC",
    "UpdatedAt": "2023-10-27 10:01:00 +0000 UTC",
    "Labels": {}
  },
  {
    "ID": "<secret_id_3>",
    "Name": "labeled_secret",
    "CreatedAt": "2023-10-27 10:02:00 +0000 UTC",
    "UpdatedAt": "2023-10-27 10:02:00 +0002 UTC",
    "Labels": {
      "environment": "production"
    }
  },
  {
    "ID": "<secret_id_4>",
    "Name": "dev_secret",
    "CreatedAt": "2023-10-27 10:03:00 +0000 UTC",
    "UpdatedAt": "2023-10-27 10:03:00 +0000 UTC",
    "Labels": {
      "environment": "development"
    }
  }
]

Die Option --format bietet eine große Flexibilität bei der Anzeige und Verarbeitung von Informationen zu Ihren Docker-Geheimnissen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie alle Geheimnisse (Secrets) in Ihrer Docker-Umgebung mithilfe des Befehls docker secret ls auflisten können. Sie haben begonnen, indem Sie einen Docker Swarm initialisiert und ein Beispiel-Geheimnis erstellt haben. Anschließend haben Sie docker secret ls verwendet, um die ID, den Namen und die Erstellungszeit des erstellten Geheimnisses anzuzeigen.

Sie haben auch gelernt, wie Sie die Liste der Geheimnisse nach Name und Label mithilfe der Option --filter filtern können und wie Sie die Ausgabe des Befehls docker secret ls für eine bessere Lesbarkeit oder für Skripte formatieren können.