Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

Docker Swarm unter CentOS installieren

Veröffentlicht am 14. September 2020 von Christian Piazzi Hinterlasse ein Kommentar , Aktualisiert am 13. September 2020
Geschätzte Lesezeit: 2 Minuten

Docker Swarm Titelbild - Containerreihen im Hafen von oben

Nach doch schon einigen Artikeln zum Thema Docker, zeige ich diesmal wie man ein Docker Swarm installiert.

Inhaltsverzeichnis

Was ist Docker Swarm?

Bei Docker Swarm handelt es sich um den in der Docker Engine integrierten Cluster Mode. Das heißt, mehrere Nodes werden zu einem Cluster (Swarm) zusammengefasst.

Ein Swarm besteht aus mehreren Docker-Hosts, die im Swarm-Mode laufen und als Manager (zur Verwaltung von Mitgliedschaft und Delegation) und Workern (zur Ausführung von Swarm-Diensten) fungieren. Ein bestimmter Docker-Host kann ein Manager oder ein Worker sein oder beide Rollen übernehmen.

Wenn ein Docker Service erstellt wird, definieren wir den optimalen Zustand des Services (Anzahl Replicas, Ports, Volumes, etc).

An dieser Stelle möchte ich aber noch kurz erwähnt haben, dass ich mittlerweile für den Clusterbetrieb Kubernetes einsetzte.

Setup

Mein Docker Swarm Setup für diesen Artikel umfasst drei installierte CentOS 7 Systeme:

  • docker-master: 192.168.10.180
  • docker-node1: 192.168.10.181
  • docker-node2: 192.168.10.182

Die Systeme haben die aktuellen Updates installiert und eine lauffähige Docker Installation.

Docker Swarm Manager

Wir fangen mit dem Docker Manager an. Auf diesem erstellen wir einen neuen Swarm. Dafür wird der folgende Befehl verwendet.

1
2
3
4
5
6
7
8
9
10
$ docker swarm init --advertise-addr 192.168.10.180
 
Swarm initialized: current node (t8vurh1mtla3etrjn872qvnoh) is now a manager.
 
To add a worker to this swarm, run the following command:
 
    docker swarm join --token SWMTKN-1-3qbdzzr3r5dv9viqdja3aodpbq5kf97ysehv4jgb28cy5tvjwv-2l2q1oaz0oxc124ot2nuf1lkt 192.168.10.180:2377
 
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
 

In der Ausgabe wird der Befehl zum Hinzufügen eines neuen Nodes angezeigt. Diesen Befehl sichert man in einer Textdatei, da man diesen später noch braucht.

Mit docker node ls bekommen wir eine Übersicht der im Swarm enthaltenen Instanzen. Dort sollte im Moment nur der Manager auftauchen:

1
2
3
docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
t8vurh1mtla3etrjn872qvnoh *   docker-master       Ready               Active              Leader              19.03.12

Hinzufügen von Swarm Nodes

Um eine neue Node dem Swarm hinzuzufügen, wird der vorher gespeicherte Befehl verwendet. Dieser wird auf Node 1 und Node 2 ausgeführt.

1
docker swarm join --token SWMTKN-1-3qbdzzr3r5dv9viqdja3aodpbq5kf97ysehv4jgb28cy5tvjwv-2l2q1oaz0oxc124ot2nuf1lkt 192.168.10.180:2377

Führen wir nun nochmal docker node ls aus, sollten auch die beiden Nodes in der Übersicht mit auftauchen:

1
2
3
4
5
docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
t8vurh1mtla3etrjn872qvnoh *   docker-master       Ready               Active              Leader              19.03.12
lpvbgpbkp57d7xnnrt4i3qv8r     docker-node1        Ready               Active                                  19.03.12
wxt8t4g07zdl95cn76zixjyf7     docker-node2        Ready               Active                                  19.03.12

Deployment eines Docker Services

Nachdem der Swarm installiert ist, können wir den ersten Container Deployen. Ich verwende dafür einfach einen nginx Container.

1
2
3
4
5
6
docker service create --replicas 2 --name nginx nginx
svo6ad4o8x1tbn3djqzjf5ebk
overall progress: 2 out of 2 tasks
1/2: running   [==================================================>]
2/2: running   [==================================================>]
verify: Service converged

Mit dem docker service Befehl können wir nun überprüfen, ob zwei Instanzen von nginx laufen.

1
2
3
4
docker service ps nginx
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE           ERROR               PORTS
zw1zlbku6bym        nginx.1             nginx:latest        docker-master       Running             Running 2 minutes ago
b1u0q5e29f9m        nginx.2             nginx:latest        docker-node2        Running             Running 2 minutes ago

Wie man an der Ausgabe sehen kann, sind zwei Instanzen gestartet. In der Spalte Node sieht man, auf welcher CentOS Instanz der Container gerade läuft.

Damit haben wir erfolgreich einen Docker Cluster installiert und in betrieb genommen. Habt ihr weitere Docker Themen die euch interessieren? Dann hinterlasst mir doch einen Kommentar mit diesem Thema für einen der nächsten Artikel.

Kategorie: DevOps, Docker Tags: Centos, Cluster, Docker, Swarm

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Neueste Kommentare

  • Prometheus Installation unter Ubuntu - Modius - Techblog bei Prometheus Installation unter CentOS
  • Rainer bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2025 · Outreach Pro on Genesis Framework · WordPress · Anmelden