Wie man den Befehl docker swarm init verwendet, um einen Swarm zu initialisieren

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 erfahren Sie, wie Sie einen Docker Swarm mit dem Befehl docker swarm init initialisieren können. Sie beginnen damit, einen einfachen Swarm zu initialisieren, um den grundlegenden Prozess zu verstehen.

Basierend auf der einfachen Initialisierung werden Sie dann fortgeschritteneren Szenarien nachgehen. Dazu gehört die Initialisierung eines Swarms mit einer bestimmten Anzeigeadresse (advertise address) zur Steuerung der Netzwerkkommunikation, die Aktivierung der Autolock-Funktion für erhöhte Sicherheit und die Konfiguration eines benutzerdefinierten Datenpfadports (data path port). Durch diese Schritte erhalten Sie praktische Erfahrungen bei der Einrichtung und Anpassung einer Docker Swarm-Umgebung.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") subgraph Lab Skills docker/ls -.-> lab-555240{{"Wie man den Befehl docker swarm init verwendet, um einen Swarm zu initialisieren"}} docker/rm -.-> lab-555240{{"Wie man den Befehl docker swarm init verwendet, um einen Swarm zu initialisieren"}} docker/inspect -.-> lab-555240{{"Wie man den Befehl docker swarm init verwendet, um einen Swarm zu initialisieren"}} docker/info -.-> lab-555240{{"Wie man den Befehl docker swarm init verwendet, um einen Swarm zu initialisieren"}} end

Initialisierung eines einfachen Swarms

In diesem Schritt erfahren Sie, wie Sie einen einfachen Docker Swarm initialisieren können. Docker Swarm ist eine native Lösung für die Clusterbildung und Orchestrierung von Docker. Mit ihr können Sie einen Cluster von Docker-Knoten erstellen und verwalten.

Bevor Sie den Swarm initialisieren, überprüfen wir zunächst den aktuellen Docker-Status.

docker info

Sie sollten Informationen über Ihre Docker-Installation sehen. Suchen Sie nach dem Abschnitt "Swarm". Dieser sollte anzeigen, dass der Swarm inaktiv ist.

Um einen einfachen Swarm zu initialisieren, verwenden Sie den Befehl docker swarm init. Dieser Befehl verwandelt den aktuellen Docker-Host in einen Swarm-Manager.

docker swarm init

Nachdem Sie den Befehl ausgeführt haben, sehen Sie eine Ausgabe, die anzeigt, dass der Swarm initialisiert wurde, und es wird ein Befehl angegeben, um andere Knoten als Worker dem Swarm beizutreten.

Lassen Sie uns überprüfen, ob der Swarm erfolgreich initialisiert wurde.

docker info

Jetzt sollte der Abschnitt "Swarm" anzeigen, dass der Swarm aktiv ist und dass der aktuelle Knoten ein Manager ist.

Sie können auch den Befehl docker node ls verwenden, um die Knoten im Swarm aufzulisten.

docker node ls

Sie sollten den aktuellen Knoten mit dem Status "Ready" und der Rolle "Manager" aufgeführt sehen.

Initialisierung eines Swarms mit einer bestimmten Anzeigeadresse (advertise address)

Im vorherigen Schritt haben Sie einen einfachen Docker Swarm initialisiert. In diesem Schritt erfahren Sie, wie Sie einen Swarm initialisieren und die Adresse angeben können, die der Swarm-Manager an andere Knoten weitergibt. Dies ist in Umgebungen mit mehreren Netzwerkschnittstellen nützlich oder wenn Sie kontrollieren möchten, welche Adresse für die Swarm-Kommunikation verwendet wird.

Zunächst müssen Sie den bestehenden Swarm verlassen. Dies können Sie mit dem Befehl docker swarm leave tun. Da dies der einzige Knoten ist und er ein Manager ist, müssen Sie die Option --force verwenden.

docker swarm leave --force

Sie sollten eine Ausgabe sehen, die bestätigt, dass der Knoten den Swarm verlassen hat.

Jetzt suchen wir die IP-Adresse Ihres aktuellen Computers. Sie können den Befehl ip addr show verwenden und nach der IP-Adresse suchen, die mit Ihrer Netzwerkschnittstelle verknüpft ist (häufig eth0 oder ens*).

ip addr show

Identifizieren Sie die IP-Adresse, die Sie als Anzeigeadresse (advertise address) für den Swarm verwenden möchten. Wenn Ihre IP-Adresse beispielsweise 172.17.0.2 ist, verwenden Sie diese.

Jetzt initialisieren Sie den Swarm erneut, geben diesmal aber die Anzeigeadresse (advertise address) mit der Option --advertise-addr an. Ersetzen Sie <YOUR_IP_ADDRESS> durch die tatsächliche IP-Adresse, die Sie gefunden haben.

docker swarm init --advertise-addr <YOUR_IP_ADDRESS>

Sie werden eine Ausgabe ähnlich der einfachen Initialisierung sehen, aber der Join-Befehl wird jetzt die angegebene Anzeigeadresse (advertise address) enthalten.

Um zu überprüfen, ob der Swarm mit der richtigen Anzeigeadresse (advertise address) initialisiert wurde, können Sie den Swarm untersuchen.

docker swarm inspect --pretty

Suchen Sie im Output nach dem Feld AdvertiseAddr. Es sollte mit der von Ihnen angegebenen IP-Adresse übereinstimmen.

Initialisierung eines Swarms mit aktivierter Autolock-Funktion

In diesem Schritt erfahren Sie, wie Sie einen Docker Swarm mit aktivierter Autolock-Funktion initialisieren können. Die Autolock-Funktion schützt den Swarm vor unbefugtem Zugriff, indem nach einem Neustart des Docker-Daemons ein Entschlüsselungsschlüssel erforderlich ist, um den Swarm freizuschalten.

Zunächst verlassen Sie den bestehenden Swarm, wie Sie es im vorherigen Schritt getan haben.

docker swarm leave --force

Jetzt initialisieren Sie den Swarm mit der Option --autolock. Wenn Sie die Anzeigeadresse (advertise address) angeben möchten, können Sie auch erneut die Option --advertise-addr hinzufügen. Ersetzen Sie <YOUR_IP_ADDRESS> durch die IP-Adresse Ihres Computers.

docker swarm init --autolock --advertise-addr <YOUR_IP_ADDRESS>

Wenn Sie den Swarm mit --autolock initialisieren, enthält die Ausgabe einen "Swarm auto-lock key". Es ist von entscheidender Bedeutung, diesen Schlüssel an einem sicheren Ort zu speichern. Sie benötigen ihn, um den Swarm nach einem Neustart des Docker-Daemons freizuschalten.

Um zu überprüfen, ob die Autolock-Funktion aktiviert ist, können Sie den Swarm untersuchen.

docker swarm inspect --pretty

Suchen Sie im Output nach dem Feld AutoLockManagers. Es sollte auf true gesetzt sein.

Beachten Sie, dass da es sich hier um einen Ein-Knoten-Swarm in einer Lab-Umgebung handelt, Sie die volle Wirkung der Autolock-Funktion, die nach einem Neustart des Daemons einen Schlüssel erfordert, nicht erleben werden. Dieser Schritt zeigt jedoch, wie Sie die Funktion aktivieren können.

Initialisierung eines Swarms mit einem benutzerdefinierten Port für den Datenpfad (data path port)

In diesem Schritt erfahren Sie, wie Sie einen Docker Swarm initialisieren und einen benutzerdefinierten Port für das Netzwerk des Datenpfads (data path network) angeben können. Das Netzwerk des Datenpfads wird für die Kommunikation zwischen Swarm-Knoten verwendet, beispielsweise für Aufgaben wie die Dienstermittlung (service discovery) und die Lastverteilung (load balancing). Standardmäßig wird Port 4789 verwendet. Sie müssen diesen Port möglicherweise ändern, wenn er mit anderen Diensten in Ihrem Netzwerk in Konflikt steht.

Zunächst verlassen Sie den bestehenden Swarm.

docker swarm leave --force

Jetzt initialisieren Sie den Swarm und geben einen benutzerdefinierten Port für den Datenpfad mit der Option --data-path-port an. Nehmen wir als Beispiel Port 5789. Wenn Sie möchten, können Sie auch die Optionen --advertise-addr und --autolock hinzufügen. Ersetzen Sie <YOUR_IP_ADDRESS> durch die IP-Adresse Ihres Computers.

docker swarm init --data-path-port 5789 --advertise-addr < YOUR_IP_ADDRESS > --autolock

Sie werden die Initialisierungsausgabe sehen, einschließlich des Autolock-Schlüssels, wenn Sie diese Funktion aktiviert haben.

Um zu überprüfen, ob der benutzerdefinierte Port für den Datenpfad konfiguriert ist, können Sie den Swarm untersuchen.

docker swarm inspect --pretty

Suchen Sie im Output nach dem Feld DataPathPort. Es sollte den von Ihnen angegebenen benutzerdefinierten Port anzeigen, in diesem Beispiel 5789.

Dies schließt die Schritte zur Initialisierung eines Docker Swarms mit verschiedenen Optionen ab. Sie haben gelernt, wie Sie einen einfachen Swarm initialisieren, eine Anzeigeadresse (advertise address) angeben, die Autolock-Funktion aktivieren und einen benutzerdefinierten Port für den Datenpfad festlegen können.

Zusammenfassung

In diesem Lab haben Sie den grundlegenden Prozess der Initialisierung eines Docker Swarms kennengelernt. Sie haben zunächst einen einfachen Swarm mit dem Befehl docker swarm init initialisiert, die Änderungen in docker info beobachtet und die Manager-Rolle mit docker node ls überprüft.

Anschließend haben Sie fortgeschrittenere Initialisierungsoptionen erkundet. Sie haben gelernt, wie Sie einen bestehenden Swarm mit docker swarm leave --force verlassen und dann den Swarm neu initialisieren können, während Sie mit der Option --advertise-addr eine bestimmte Anzeigeadresse (advertise address) angeben. Dies hat gezeigt, wie Sie die Netzwerkschnittstelle steuern können, die für die Swarm-Kommunikation verwendet wird.