Wie man den Befehl docker swarm unlock verwendet, um einen Swarm-Manager zu entsperren

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 swarm unlock verwenden, um einen Docker Swarm-Manager nach einem Neustart des Docker-Daemons mit aktivierter Autolock-Funktion (Automatische Sperrung) zu entsperren. Wir beginnen damit, einen Swarm mit aktivierter Autolock-Funktion zu initialisieren, was einen eindeutigen Entsperrschlüssel generiert.

Als Nächstes simulieren wir einen Neustart des Docker-Daemons auf dem Manager-Knoten, um den Autolock-Mechanismus auszulösen. Abschließend verwenden Sie den Befehl docker swarm unlock mit dem zuvor erhaltenen Entsperrschlüssel, um den Swarm-Manager erfolgreich zu entsperren und ihm zu ermöglichen, seine Operationen fortzusetzen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/restart("Restart Container") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/ps -.-> lab-555244{{"Wie man den Befehl docker swarm unlock verwendet, um einen Swarm-Manager zu entsperren"}} docker/restart -.-> lab-555244{{"Wie man den Befehl docker swarm unlock verwendet, um einen Swarm-Manager zu entsperren"}} docker/system -.-> lab-555244{{"Wie man den Befehl docker swarm unlock verwendet, um einen Swarm-Manager zu entsperren"}} end

Initialisieren eines Swarms mit aktivierter Autolock-Funktion

In diesem Schritt werden wir einen Docker Swarm mit aktivierter Autolock-Funktion (Automatische Sperrung) initialisieren. Die Autolock-Funktion schützt den Swarm vor unbefugtem Zugriff, indem ein Schlüssel erforderlich ist, um den Swarm nach einem Neustart des Docker-Daemons zu entsperren.

Zunächst initialisieren wir den Swarm. Wir verwenden den Befehl docker swarm init mit der Option --autolock.

docker swarm init --autolock

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die darauf hinweist, dass der Swarm initialisiert wurde und ein Entsperrschlüssel generiert wurde. Kopieren Sie unbedingt den Entsperrschlüssel, da Sie ihn im nächsten Schritt benötigen.

Swarm initialized: current node (xxxxxxxxxxxx) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 172.17.0.2:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

To unlock the swarm after it restarts, run the `docker swarm unlock` command and provide the following key:

    Swarm unlock key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Die Ausgabe enthält den Befehl, um einen Worker oder Manager dem Swarm hinzuzufügen, und vor allem den Swarm unlock key (Entsperrschlüssel für den Swarm). Dieser Schlüssel ist entscheidend, um den Swarm nach einem Neustart des Docker-Daemons zu entsperren.

Neustart des Docker-Daemons auf dem Manager-Knoten

In diesem Schritt simulieren wir einen Neustart des Docker-Daemons auf dem Manager-Knoten. Dies zeigt die Wirkung der Autolock-Funktion (Automatische Sperrung), die wir im vorherigen Schritt aktiviert haben.

Um den Docker-Daemon neu zu starten, verwenden wir den Befehl systemctl restart docker. Da dies Root-Rechte erfordert, verwenden wir sudo.

sudo systemctl restart docker

Nach der Ausführung des Befehls wird der Docker-Daemon gestoppt und anschließend erneut gestartet. Dies simuliert einen Server-Neustart oder einen manuellen Neustart des Docker-Dienstes.

Jetzt versuchen wir, einen einfachen Docker-Befehl auszuführen, um den Zustand des Swarms zu überprüfen. Wir verwenden docker node ls.

docker node ls

Sie sollten eine Fehlermeldung sehen, die darauf hinweist, dass der Swarm gesperrt ist und entsperrt werden muss. Dies bestätigt, dass die Autolock-Funktion wie erwartet funktioniert. Die Ausgabe sieht in etwa so aus:

Error: swarm is encrypted and needs to be unlocked before it can be used. Please use "docker swarm unlock" to unlock it.

Diese Fehlermeldung ist zu erwarten, da der Swarm aufgrund des Neustarts des Docker-Daemons jetzt gesperrt ist. Im nächsten Schritt verwenden wir den in Schritt 1 erhaltenen Entsperrschlüssel, um den Swarm zu entsperren.

Entsperren des Managers mit docker swarm unlock

In diesem Schritt entsperren wir den Docker Swarm mit dem Entsperrschlüssel, den wir in Schritt 1 erhalten haben. Dadurch können wir wieder mit dem Swarm interagieren.

Denken Sie sich den Entsperrschlüssel in Erinnerung, der angezeigt wurde, als Sie den Swarm in Schritt 1 initialisiert haben. Sie müssen diesen Schlüssel dem Befehl docker swarm unlock übergeben.

Verwenden Sie den Befehl docker swarm unlock gefolgt von der Option --unlock-key und dem kopierten Entsperrschlüssel. Ersetzen Sie YOUR_UNLOCK_KEY durch den tatsächlichen Schlüssel.

docker swarm unlock --unlock-key YOUR_UNLOCK_KEY

Nach der Ausführung des Befehls mit dem korrekten Entsperrschlüssel sollte der Swarm entsperrt sein. Sie sollten eine Ausgabe sehen, die darauf hinweist, dass der Swarm erfolgreich entsperrt wurde.

Swarm unlocked.

Jetzt, da der Swarm entsperrt ist, überprüfen wir, ob wir wieder mit ihm interagieren können, indem wir die Knoten im Swarm auflisten.

docker node ls

Sie sollten jetzt die Details des Manager-Knotens sehen, was darauf hinweist, dass der Swarm betriebsbereit ist. Die Ausgabe sieht in etwa so aus:

ID                            HOSTNAME            STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
xxxxxxxxxxxx   labex-vm            Ready     Active         Leader           20.10.21

Dies bestätigt, dass Sie den Docker Swarm nach dem Neustart des Daemons erfolgreich entsperrt haben.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man den Befehl docker swarm unlock verwendet, um einen Swarm-Manager nach einem Neustart des Docker-Daemons zu entsperren, wenn der Swarm mit der aktivierten Autolock-Funktion (Automatische Sperrung) initialisiert wurde. Wir haben begonnen, indem wir einen Docker Swarm mit docker swarm init --autolock initialisiert haben, was einen eindeutigen Entsperrschlüssel erzeugt hat, der für den erneuten Zugang zum Swarm nach einem Neustart unerlässlich ist. Anschließend haben wir einen Neustart des Docker-Daemons auf dem Manager-Knoten mit sudo systemctl restart docker simuliert, um den Autolock-Mechanismus auszulösen. Dies hat die Wichtigkeit des bei der Initialisierung erhaltenen Entsperrschlüssels gezeigt.