{"id":12486,"date":"2026-06-11T16:07:09","date_gmt":"2026-06-11T09:07:09","guid":{"rendered":"\/de\/tutorials\/?p=12486"},"modified":"2026-06-11T16:10:06","modified_gmt":"2026-06-11T09:10:06","slug":"docker-stack-bereitstellen","status":"publish","type":"post","link":"\/de\/tutorials\/docker-stack-bereitstellen","title":{"rendered":"Wie man einen Docker-Stack mit Swarm auf einem VPS einsetzt"},"content":{"rendered":"<p>Als Containerisierungsplattform bietet Docker viele Funktionen zur Vereinfachung der Containerverwaltung. Eine davon ist <strong>Stack<\/strong>, mit dem Sie Dienste gemeinsam in einem Schwarmcluster verwalten und ausf&uuml;hren k&ouml;nnen.<\/p><p>Um einen Docker-Stack bereitzustellen, m&uuml;ssen Sie Swarm einrichten und eine aus Diensten bestehende Compose-Datei erstellen. Anschlie&szlig;end f&uuml;hren Sie den Stack aus und &uuml;berwachen seine Leistung.<\/p><p>Diese Anleitung f&uuml;hrt Sie durch die Schritte zur Bereitstellung eines Stacks mit Docker Swarm auf virtuellen privaten Servern (VPS). Am Ende werden Sie in der Lage sein, Ihre Anwendungen &uuml;ber mehrere Server hinweg effizient zu verwalten und zu skalieren.<\/p><h2 class=\"wp-block-heading\" id=\"h-what-is-a-docker-stack\">Was ist ein Docker-Stack?<\/h2><p>Ein Docker-Stack ist eine Sammlung von Diensten, die zusammen eine Multicontainer-Anwendung bilden. Sie k&ouml;nnen diese Dienste als eine einzige Einheit definieren, bereitstellen und verwalten, was die Skalierung und Wartung komplexer Anwendungen erleichtert.<\/p><p>Stacks werden in der Regel mit Docker Swarm verwaltet, einem Orchestrierungstool, das Container-Cluster erm&ouml;glicht, eine hohe Verf&uuml;gbarkeit gew&auml;hrleistet, einen integrierten Lastausgleich bietet und Fehlertoleranz erm&ouml;glicht.<\/p><p>Die Architektur eines Docker-Stacks umfasst:<\/p><ul class=\"wp-block-list\">\n<li><strong>Dienste<\/strong> &ndash; einzelne Container oder Gruppen von Containern, die einen bestimmten Teil Ihrer Anwendung ausf&uuml;hren, wie z. B. Webserver oder Datenbanken.<\/li>\n\n\n\n<li><strong>Aufgaben<\/strong> &ndash; Instanzen eines Dienstes, die auf Knoten innerhalb des Swarm-Clusters laufen.<\/li>\n\n\n\n<li><strong>Nodes<\/strong> &ndash; Manager- und Worker-Server, die Teil des Swarm-Clusters sind. Der Managerknoten &uuml;bernimmt die Orchestrierung, w&auml;hrend die Arbeitsknoten die Container ausf&uuml;hren.<\/li>\n\n\n\n<li><strong>Netzwerke und Volumes<\/strong> &ndash; Docker Swarm bietet interne Netzwerke und persistente Speichervolumes, die eine nahtlose Kommunikation und Datenpersistenz zwischen den Diensten gew&auml;hrleisten.<\/li>\n<\/ul><h2 class=\"wp-block-heading\" id=\"h-prerequisites\">Voraussetzungen<\/h2><p>Um einen Docker-Stack mit Swarm bereitzustellen, ben&ouml;tigen Sie mindestens eine VPS-Instanz. Wir empfehlen jedoch die Verwendung mehrerer Server, da Docker Swarm f&uuml;r eine optimale Leistung und Skalierbarkeit einen Manager und einen Arbeitsknoten ben&ouml;tigt.<\/p><p>Der <a href=\"\/de\/docker-hosting\">Docker-VPS-Service von Hostinger<\/a> ist eine zuverl&auml;ssige Wahl f&uuml;r diese Einrichtung. Docker und alle seine Komponenten sind bereits vorinstalliert, so dass eine zeitaufw&auml;ndige und fehleranf&auml;llige manuelle Einrichtung nicht mehr erforderlich ist.<\/p><p>Docker ben&ouml;tigt nicht viele Ressourcen, daher sollte unser <strong>KVM 1<\/strong> -Tarif, der bei <strong>\u20ac5.49\/Monat<\/strong> mit einem einzelnen CPU-Kern, <strong>4 GB<\/strong> RAM und <strong>50 GB<\/strong> NVMe-Festplattenspeicher beginnt, f&uuml;r die meisten Anwendungsf&auml;lle ausreichend sein.<\/p><p>Keine Sorge &ndash; Sie k&ouml;nnen problemlos auf einen h&ouml;heren Tarif aufr&uuml;sten, wenn Sie mehr Leistung oder Speicherplatz ben&ouml;tigen.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/de\/vps-server\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2024\/02\/DE-VPS-hosting_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-3556\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2024\/02\/DE-VPS-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2024\/02\/DE-VPS-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2024\/02\/DE-VPS-hosting_in-text-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><p>Wenn Sie bereits einen VPS-Plan von Hostinger besitzen, ist das auch in Ordnung. <a href=\"\/de\/tutorials\/docker-auf-ubuntu-installieren\">Installieren Sie Docker<\/a> einfach &uuml;ber die Ein-Klick-Vorlage oder manuell mit Linux-Befehlen auf Ihren Servern. &Uuml;berpr&uuml;fen Sie nach der Installation, ob Docker l&auml;uft, indem Sie den Befehl ausf&uuml;hren:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker --version<\/pre><p>Sie k&ouml;nnen auch &uuml;berpr&uuml;fen, ob der Docker-Daemon aktiv ist, indem Sie ihn ausf&uuml;hren:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl status docker<\/pre><p>Es ist auch hilfreich, mit den grundlegenden Docker-CLI-Befehlen vertraut zu sein, da sie Ihnen bei der Verwaltung Ihrer Dienste und der Behebung von Problemen w&auml;hrend der Bereitstellung helfen werden. Wenn Sie eine Auffrischung dieser Befehle ben&ouml;tigen, lesen Sie unseren <a href=\"\/de\/tutorials\/docker-cheat-sheet\">Docker-Spickzettel<\/a>.<\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-deploy-a-docker-stack\">Wie man einen Docker-Stack einsetzt<\/h2><p>Nun, da alle Voraussetzungen gegeben sind, ist es an der Zeit, einen Docker-Stack mit Swarm auf Ihrem VPS bereitzustellen.<\/p><h3 class=\"wp-block-heading\" id=\"h-1-set-up-docker-swarm\">1. Docker Swarm einrichten<\/h3><p>Richten Sie zun&auml;chst Docker Swarm ein, um einen Cluster von Docker-Knoten zu verwalten und Container auf mehreren Servern bereitzustellen.<\/p><p>F&uuml;hren Sie auf Ihrem ersten Server, der als <strong>Managerknoten<\/strong> fungieren wird, den folgenden Befehl aus, um einen neuen Schwarm zu erstellen:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Docker-Schwarm-Init<\/pre><p>Der Befehl initialisiert Docker Swarm und legt diesen Server als Manager fest.<\/p><p>Sie erhalten eine Ausgabe mit dem Befehl <strong>docker swarm join<\/strong> wie diese:<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca8e67f1\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca8e67f1\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"192\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-swarm-join-token-1.png\/public\" alt=\"Eine Terminalausgabe, die einen Docker Swarm Join-Befehl zeigt\" class=\"wp-image-12471\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-swarm-join-token-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-swarm-join-token-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-swarm-join-token-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Kopieren Sie den Befehl und f&uuml;hren Sie ihn auf jedem <strong>Arbeitsknoten<\/strong> aus, den Sie dem Schwarm hinzuf&uuml;gen m&ouml;chten.<\/p><p>Bei Erfolg erhalten Sie die Meldung &ldquo;<strong>Dieser Knoten ist einem Schwarm als Arbeiter beigetreten<\/strong>&ldquo;.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca8e8738\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca8e8738\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"104\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-node-joined-swarm-worker.png\/public\" alt=\"Eine Terminalausgabe, die zeigt, dass ein Arbeitsknoten erfolgreich einem Schwarm beigetreten ist\" class=\"wp-image-12472\" style=\"width:837px;height:auto\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-node-joined-swarm-worker.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-node-joined-swarm-worker.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-node-joined-swarm-worker.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Sobald die Arbeitsknoten beigetreten sind, kehren Sie zum <strong>Managerknoten<\/strong> zur&uuml;ck und &uuml;berpr&uuml;fen Sie, ob sie sich erfolgreich mit dem Schwarm verbunden haben:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Docker-Knoten ls<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca8ea4b2\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca8ea4b2\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"125\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/Bild-2.png\/public\" alt=\"Eine Terminalausgabe, die eine Liste der mit einem Schwarm verbundenen Knoten anzeigt\" class=\"wp-image-12473\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/Bild-2.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/Bild-2.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/Bild-2.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Anders als bei der Verwendung von Swarm allein, bei der Sie die Dienste einzeln bereitstellen m&uuml;ssen, definieren Sie hier mehrere Dienste in einer Docker Compose-Datei &ndash; ein Thema, das wir im n&auml;chsten Schritt behandeln.<\/p><h3 class=\"wp-block-heading\" id=\"h-2-create-a-docker-compose-file\">2. Erstellen Sie eine Docker Compose-Datei<\/h3><p>Mit Docker Compose k&ouml;nnen Sie mehrere Dienste in einer einzigen Datei <strong>docker-compose.yml<\/strong> definieren, die dann gemeinsam bereitgestellt werden k&ouml;nnen.<\/p><p>Erstellen Sie auf dem <strong>Managerknoten<\/strong> mit dem Texteditor nano eine Docker Compose-Datei:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo nano docker-compose.yml<\/pre><p>F&uuml;gen Sie in die Datei den folgenden Inhalt ein, um drei Dienste bereitzustellen: einen <strong>Web<\/strong>-dienst, eine <strong>Datenbank<\/strong> und einen <strong>Reverse-Proxy<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Version: \"3.8\"\nDienstleistungen:\nWeb:\nBild: nginx:latest\neinsetzen:\nReplikate: 3\nrestart_policy:\nBedingung: Ein-Ausfall\nH&auml;fen:\n- \"80:80\" db:\nBild: postgres:latest\nUmwelt:\nPOSTGRES_PASSWORT: Beispiel\neinsetzen:\nReplikate: 1\nVollmacht:\nBild: jwilder\/nginx-proxy\nUmwelt:\nDEFAULT_HOST: manager.vps # oder Ihr tats&auml;chlicher Domainname\neinsetzen:\nRepliken: 2<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca8ec2a5\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca8ec2a5\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"623\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-nano-docker-compose-yml.png\/public\" alt=\"Eine Ausgabe des nano-Editors, die den Inhalt der Datei docker-compose.yml zeigt\" class=\"wp-image-12474\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-nano-docker-compose-yml.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-nano-docker-compose-yml.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-nano-docker-compose-yml.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Hier finden Sie eine Erl&auml;uterung der einzelnen Dienste:<\/p><ul class=\"wp-block-list\">\n<li><strong>web<\/strong> &ndash; ein NGINX-Dienst, der auf <strong>drei<\/strong> Replikate skaliert wird.<\/li>\n\n\n\n<li><strong>db<\/strong> &ndash; ein PostgreSQL-Datenbankdienst mit <strong>einer<\/strong> Replik.<\/li>\n\n\n\n<li><strong>proxy<\/strong> &ndash; ein Reverse-Proxy mit <strong>jwilder\/nginx-proxy<\/strong>, der mit <strong>zwei<\/strong> Replikaten l&auml;uft.<\/li>\n<\/ul><p>Speichern Sie anschlie&szlig;end die Datei und beenden Sie <strong>nano<\/strong> mit <strong>Strg + X &rarr; Y &rarr; Enter<\/strong>.<\/p><h3 class=\"wp-block-heading\" id=\"h-3-deploy-the-stack\">3. Einsatz des Stacks<\/h3><p>Nachdem Sie Ihre Dienste in der Docker Compose-Datei definiert haben, stellen Sie den neuen Stack mit dem folgenden Befehl bereit. Ersetzen Sie <strong>my_stack<\/strong> durch Ihren bevorzugten Stack-Namen:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker stack deploy -c docker-compose.yml my_stack<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca8ee233\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca8ee233\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"312\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/05\/Bild-3.png\/public\" alt=\"Eine Terminalausgabe, die den Bereitstellungsprozess eines Stacks zeigt\" class=\"wp-image-12003\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/05\/Bild-3.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/05\/Bild-3.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/05\/Bild-3.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Sie k&ouml;nnen den Status aller bereitgestellten Dienste mit &uuml;berpr&uuml;fen:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Docker-Stack-Dienste my_stack<\/pre><p>Dadurch werden alle Dienste im Stack, die Anzahl der Replikate und der aktuelle Status angezeigt, d. h. ob sie laufen oder Probleme haben.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca8f005c\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca8f005c\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"545\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/03\/Bild-4.png\/public\" alt=\"Eine Terminalausgabe, die die bereitgestellten Dienste in einem Stapel anzeigt\" class=\"wp-image-10325\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/03\/Bild-4.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/03\/Bild-4.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/03\/Bild-4.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Um weitere Details &uuml;ber jeden Dienst und seine Aufgaben zu erhalten, f&uuml;hren Sie aus:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker service ps my_stack_web<\/pre><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker service ps my_stack_db<\/pre><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker service ps my_stack_proxy<\/pre><p>Hier ist eine Beispielausgabe bei der Ausf&uuml;hrung des Befehls f&uuml;r den <strong>Web<\/strong>-dienst:<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca8f23a7\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca8f23a7\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"106\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-services-web.png\/public\" alt=\"Eine Terminalausgabe mit den Details der Webdienstaufgabe\" class=\"wp-image-12475\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-services-web.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-services-web.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-services-web.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-4-test-the-deployment\">4. Testen Sie den Einsatz<\/h3><p>Sie k&ouml;nnen nun testen, ob Ihre Dienste korrekt laufen. Das Pr&uuml;fverfahren ist je nach Dienst unterschiedlich.<\/p><p>Da einer der Dienste, die Sie in diesem Tutorial bereitgestellt haben, der NGINX-Webdienst ist, testen Sie ihn, indem Sie einen Browser &ouml;ffnen und auf die IP-Adresse des Managerknotens zugreifen. Zum Beispiel:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">http:\/\/22.222.222.84<\/pre><p>Hostinger VPS-Kunden finden die IP-Adresse ihres Servers, indem sie zu <strong>hPanel &rarr; VPS &rarr; Verwalten &rarr; &Uuml;bersicht &rarr; VPS-Details<\/strong> navigieren:<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca9004cc\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca9004cc\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img decoding=\"async\" width=\"1136\" height=\"364\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/05\/vps-overview-ipv4-hpanel.png\/public\" alt=\"Die IPv4-Informationen zum VPS in hPanel\" class=\"wp-image-12038\" style=\"width:840px;height:auto\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/05\/vps-overview-ipv4-hpanel.png\/w=1136,fit=scale-down 1136w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/05\/vps-overview-ipv4-hpanel.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/05\/vps-overview-ipv4-hpanel.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/05\/vps-overview-ipv4-hpanel.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1136px) 100vw, 1136px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Sie sollten die standardm&auml;&szlig;ige NGINX-Begr&uuml;&szlig;ungsseite sehen, die best&auml;tigt, dass der Webdienst ausgef&uuml;hrt wird:<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca902560\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca902560\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"449\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/nginx-welcome-page.png\/public\" alt=\"Die NGINX-Begr&uuml;&szlig;ungsseite in einem Browser\" class=\"wp-image-12476\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/nginx-welcome-page.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/nginx-welcome-page.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/nginx-welcome-page.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-5-scale-the-services\">5. Skalierung der Dienste<\/h3><p>Mit der Skalierung von Docker-Diensten k&ouml;nnen Sie die Ressourcenzuweisung verwalten und die Arbeitslasten gleichm&auml;&szlig;ig auf mehrere Knoten verteilen, indem Sie die Anzahl der Replikate in Ihrem Swarm-Cluster erh&ouml;hen oder verringern.<\/p><p>Um beispielsweise den <strong>Web-<\/strong>dienst von <strong>drei<\/strong> auf <strong>f&uuml;nf<\/strong> Replikate zu skalieren, f&uuml;hren Sie aus:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker service scale my_stack_web=5<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca904c9c\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca904c9c\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"297\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-scale-service.png\/public\" alt=\"Eine Terminalausgabe, die den Skalierungsprozess eines Dienstes zeigt\" class=\"wp-image-12477\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-scale-service.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-scale-service.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-scale-service.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>&Uuml;berpr&uuml;fen Sie anschlie&szlig;end, ob die Skalierung funktioniert hat, indem Sie den Befehl ausf&uuml;hren:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker service ps my_stack_web<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca906b38\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca906b38\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"147\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-service-replica.png\/public\" alt=\"Eine Terminalausgabe, die zeigt, dass der Dienst auf f&uuml;nf Aufgaben repliziert wurde\" class=\"wp-image-12478\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-service-replica.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-service-replica.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-service-replica.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-6-update-and-roll-back-the-stack\">6. Aktualisieren und Zur&uuml;cksetzen des Stapels<\/h3><p>Sie k&ouml;nnen Ihren bestehenden Stack jederzeit aktualisieren, sei es durch Hinzuf&uuml;gen neuer Dienste, Aktualisieren bestehender Dienste, Entfernen nicht verwendeter Komponenten oder &Auml;ndern der Konfiguration.<\/p><p>Wir aktualisieren den Stapel um:<\/p><ul class=\"wp-block-list\">\n<li>Hinzuf&uuml;gen von zwei neuen Diensten: <strong>wordpress<\/strong> mit <strong>drei<\/strong> Replikaten und <strong>mysql<\/strong> mit <strong>einem<\/strong> Replikat. WordPress ben&ouml;tigt in der Regel MySQL f&uuml;r die Datenbankspeicherung.<\/li>\n\n\n\n<li>Entfernen des PostgreSQL <strong>db<\/strong> -Dienstes, da wir nicht zwei verschiedene Datenbanken einsetzen wollen.<\/li>\n\n\n\n<li>Aktualisierung des <strong>Proxy<\/strong> -Dienstes mit einem aktuellen Dom&auml;nennamen.<\/li>\n<\/ul><p>Dazu m&uuml;ssen Sie zun&auml;chst Ihre Datei <strong>docker-compose.yml<\/strong> bearbeiten:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo nano docker-compose.yml<\/pre><p>L&ouml;schen Sie in der Datei alle vorhandenen Inhalte und ersetzen Sie sie durch die untenstehende aktualisierte Version:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Version: \"3.8\"\nDienstleistungen:\nWeb:\nBild: nginx:latest\neinsetzen:\nReplikate: 5\nrestart_policy:\nBedingung: Ein-Ausfall\nH&auml;fen:\n- \"80:80\"\nVollmacht:\nBild: jwilder\/nginx-proxy\nUmwelt:\nDEFAULT_HOST: www.example.com\neinsetzen:\nRepliken: 2\nwordpress:\nbild: wordpress:latest\nUmwelt:\nWORDPRESS_DB_HOST: db:3306\nWORDPRESS_DB_NAME: exampledb\nWORDPRESS_DB_USER: root\nWORDPRESS_DB_PASSWORT: Beispiel\nH&auml;fen:\n- \"8080:80\"\neinsetzen:\nReplikate: 3\nmysql:\nBild: mysql:5.7\nUmwelt:\nMYSQL_ROOT_PASSWORT: Beispiel\nMYSQL_DATENBANK: exampledb\neinsetzen:\nReplikate: 1<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca908de9\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca908de9\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"867\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-nano-docker-compose-yml-update.png\/public\" alt=\"Eine Ausgabe des nano-Editors, die den Inhalt der aktualisierten Datei docker-compose-yml zeigt\" class=\"wp-image-12479\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-nano-docker-compose-yml-update.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-nano-docker-compose-yml-update.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-nano-docker-compose-yml-update.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Vergessen Sie nicht, die Umgebungsvariablen f&uuml;r <strong>WordPress<\/strong> und <strong>Mysql<\/strong> mit Ihren Anmeldedaten zu aktualisieren. Speichern Sie anschlie&szlig;end Ihre &Auml;nderungen und beenden Sie <strong>nano<\/strong>.<\/p><p>Als N&auml;chstes stellen Sie den aktualisierten Stack erneut bereit:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker stack deploy -c docker-compose.yml my_stack<\/pre><p>&Uuml;berpr&uuml;fen Sie, ob die neuen Dienste mit ausgef&uuml;hrt werden:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Docker-Stack-Dienste my_stack<\/pre><p>Sie werden feststellen, dass die neuen Dienste <strong>wordpress<\/strong> und <strong>mysql<\/strong> hinzugef&uuml;gt wurden, der gel&ouml;schte Dienst <strong>db<\/strong> aber noch vorhanden ist. Das liegt daran, dass das Entfernen eines Dienstes aus der Docker Compose-Datei ihn nicht automatisch aus dem Schwarm entfernt.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca90adeb\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca90adeb\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"158\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-services-update.png\/public\" alt=\"Eine Terminalausgabe, die die aktualisierten Dienste in einem Stapel anzeigt\" class=\"wp-image-12480\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-services-update.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-services-update.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-services-update.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Um den alten Dienst manuell aus Ihrem Schwarm zu l&ouml;schen, f&uuml;hren Sie aus:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker service rm my_stack_db<\/pre><p>Best&auml;tigen Sie die Entfernung, indem Sie denselben Befehl <strong>docker stack services my_stack<\/strong> erneut ausf&uuml;hren.<\/p><p>Wenn nach der Aktualisierung etwas schief geht, stellen Sie den Stack zur&uuml;ck, indem Sie die vorherige Version Ihrer Docker Compose-Datei erneut bereitstellen:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker stack deploy -c docker-compose.yml --with-registry-auth my_stack<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca90ca65\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca90ca65\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"185\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-roll-back.png\/public\" alt=\"Eine Terminalausgabe, die den Rollback-Prozess eines Stacks zeigt\" class=\"wp-image-12481\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-roll-back.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-roll-back.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-roll-back.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-7-monitor-stack-performance\">7. Stack-Leistung &uuml;berwachen<\/h3><p>Die &Uuml;berwachung der Leistung des Docker-Stacks stellt sicher, dass Ihre Dienste reibungslos funktionieren, und hilft Ihnen bei der sofortigen Behebung von Problemen.<\/p><p>Sehen Sie sich zun&auml;chst die Dienstprotokolle an, um zu verstehen, wie sich die Dienste verhalten. Um zum Beispiel Protokolle f&uuml;r <strong>my_stack_web<\/strong> zu sehen, verwenden Sie:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker service logs my_stack_web<\/pre><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"607\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-service-logs.png\/public\" alt=\"Eine Terminalausgabe mit Protokollen f&uuml;r einen Dienst\" class=\"wp-image-12482\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-service-logs.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-service-logs.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-service-logs.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><p>Um die Tail-Protokolle f&uuml;r einen bestimmten Dienst kontinuierlich zu verfolgen, f&uuml;gen Sie dem Befehl die Option<strong> -f<\/strong> hinzu:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker service logs -f my_stack_web<\/pre><p>Wenn Sie einen umfassenderen &Uuml;berblick &uuml;ber die Ressourcennutzung w&uuml;nschen, verwenden Sie den Echtzeit-Ressourcenverbrauchsmonitor. Es zeigt die CPU- Speicher- Netzwerk- und Festplattennutzung f&uuml;r alle Container an:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Docker-Statistiken<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca90f839\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca90f839\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"70\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stats-container.png\/public\" alt=\"Eine Terminalausgabe, die den Ressourcenverbrauch von Docker-Containern anzeigt\" class=\"wp-image-12483\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stats-container.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stats-container.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stats-container.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Wenn Sie nur einen bestimmten Container &uuml;berwachen wollen, f&uuml;gen Sie dessen Namen wie folgt an:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker stats [container_name]<\/pre><h3 class=\"wp-block-heading\" id=\"h-8-remove-the-stack\">8. Entfernen Sie den Stapel<\/h3><p>Und schlie&szlig;lich k&ouml;nnen Sie Ihre Einrichtung aufr&auml;umen, wenn Sie mit dem &Uuml;ben fertig sind und den Stapel nicht mehr ben&ouml;tigen.<\/p><p>F&uuml;hren Sie den folgenden Befehl aus, um den gesamten Stapel sicher zu entfernen:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker stack rm my_stack<\/pre><p>Dadurch werden alle Dienste im Stapel angehalten und entfernt.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca911665\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca911665\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"347\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-remove.png\/public\" alt=\"Eine Terminalausgabe, die den Abbauprozess eines Stapels zeigt\" class=\"wp-image-12484\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-remove.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-remove.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-remove.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Sie k&ouml;nnen best&auml;tigen, dass der Stapel entfernt wurde, indem Sie die Dienste erneut &uuml;berpr&uuml;fen:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Docker-Stack-Dienste my_stack<\/pre><p>Wenn das Entfernen erfolgreich war, sollte der Befehl nichts zur&uuml;ckgeben.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a2b7ca91347a\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a2b7ca91347a\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"131\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-nothing-found.png\/public\" alt=\"Eine Terminalausgabe, die anzeigt, dass ein Stapel gel&ouml;scht wurde\" class=\"wp-image-12485\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-nothing-found.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-nothing-found.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2026\/06\/terminal-docker-stack-nothing-found.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Sie k&ouml;nnen Ihren Schwarm auch l&ouml;schen, indem Sie die Knoten veranlassen, ihn zu verlassen:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker swarm leave # auf Arbeiterknoten<\/pre><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker swarm leave --force # auf Manager-Knoten<\/pre><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Schlussfolgerung<\/h2><p>Der Docker-Stack vereinfacht die Bereitstellung und Verwaltung von Anwendungen mit mehreren Containern, indem er Dienste gruppiert und so deren Skalierung und &Uuml;berwachung erleichtert.<\/p><p>In diesem Tutorial haben wir Ihnen gezeigt, wie Sie einen Docker-Stack mit Swarm auf mehreren Servern bereitstellen k&ouml;nnen:<\/p><ol class=\"wp-block-list\">\n<li>Initialisieren Sie Docker Swarm und verbinden Sie die Arbeitsknoten.<\/li>\n\n\n\n<li>Erstellen Sie eine Docker Compose-Datei, um Ihre Dienste zu definieren.<\/li>\n\n\n\n<li>Stellen Sie den Stack in Swarm bereit.<\/li>\n\n\n\n<li>Testen Sie den Einsatz des Stacks.<\/li>\n\n\n\n<li>Skalieren Sie die Dienstreplikate nach Bedarf.<\/li>\n\n\n\n<li>Aktualisieren Sie den Stack, indem Sie Dienste hinzuf&uuml;gen oder entfernen.<\/li>\n\n\n\n<li>&Uuml;berwachen Sie die Stack-Leistung.<\/li>\n\n\n\n<li>R&auml;umen Sie den Stapel auf, wenn Sie fertig sind.<\/li>\n<\/ol><p>Wenn Sie mit dem Docker-Stack vertrauter werden, k&ouml;nnen Sie Dienste wie Redis zur Verbesserung des Caching oder RabbitMQ zur Verbesserung der asynchronen Verarbeitung innerhalb Ihres Stacks hinzuf&uuml;gen.<\/p><p>Sie k&ouml;nnen auch andere &Uuml;berwachungstools wie Prometheus und Grafana ausprobieren, die eine leistungsf&auml;higere Metriksammlung und umfassendere Einblicke bieten als die integrierte &Uuml;berwachung von Docker.<\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-deploy-a-docker-stack-faq\"><strong>Wie man einen Docker-Stack einsetzt FAQ<\/strong> <\/h2><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1781168710737\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Wie erstelle ich einen Docker-Stack?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Um einen Docker-Stack zu erstellen, initialisieren Sie zun&auml;chst den Swarm-Modus auf Ihren Nodes mit dem Befehl&nbsp;<strong>docker swarm init<\/strong>. Definieren Sie dann Ihre Dienste in einer Datei&nbsp;<strong>docker-compose.yml<\/strong>. Zum Schluss stellen Sie den Stack mit&nbsp;<strong>docker stack deploy -c docker-compose.yml [stack_name]<\/strong>&nbsp;bereit.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1781168713297\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Welche Dateien werden f&uuml;r die Bereitstellung eines Docker-Stacks ben&ouml;tigt?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Sie ben&ouml;tigen nur eine Datei&nbsp;<strong>docker-compose.yml<\/strong>, die die Dienste, Netzwerke und Volumes Ihres Stacks definiert. Diese Datei spezifiziert die Konfiguration und Skalierung der Dienste, wenn sie in Docker Swarm bereitgestellt werden.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1781168714127\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Wie verwende ich Docker Compose f&uuml;r Stacks?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Verwenden Sie Docker Compose, um mehrere Dienste in einer Datei zu definieren. Nachdem Sie die Dienste definiert haben, stellen Sie sie mit dem Befehl docker stack deploy in Swarm bereit. Um &Auml;nderungen vorzunehmen, bearbeiten Sie einfach Ihre Compose-Datei und stellen den Stack erneut bereit.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Als Containerisierungsplattform bietet Docker viele Funktionen zur Vereinfachung der Containerverwaltung. Eine davon ist Stack, mit dem Sie Dienste gemeinsam in einem Schwarmcluster verwalten und ausf&uuml;hren k&ouml;nnen. Um einen Docker-Stack bereitzustellen, m&uuml;ssen Sie Swarm einrichten und eine aus Diensten bestehende Compose-Datei erstellen. Anschlie&szlig;end f&uuml;hren Sie den Stack aus und &uuml;berwachen seine Leistung. Diese Anleitung f&uuml;hrt Sie [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/de\/tutorials\/docker-stack-bereitstellen\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":190,"featured_media":12470,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Docker Stack bereitstellen mit Swarm einfach erkl\u00e4rt","rank_math_description":"Docker Stack bereitstellen: 1. Swarm initialisieren 2. Services definieren 3. Stack deployen 4. Funktion testen.","rank_math_focus_keyword":"Docker Stack bereitstellen","footnotes":""},"categories":[25],"tags":[],"class_list":["post-12486","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"hreflangs":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/posts\/12486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/users\/190"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/comments?post=12486"}],"version-history":[{"count":5,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/posts\/12486\/revisions"}],"predecessor-version":[{"id":12600,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/posts\/12486\/revisions\/12600"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/media\/12470"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/media?parent=12486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/categories?post=12486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/tags?post=12486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}