Mehrere Beispiel-Stacks bereitstellen
In diesem Schritt lernen Sie, wie Sie mehrere Stacks auf Ihrem Docker Swarm bereitstellen können. Dies zeigt, wie Sie verschiedene Anwendungen oder Dienste unabhängig voneinander innerhalb desselben Swarms verwalten können.
Wir werden zwei einfache Stacks bereitstellen: einen mit Nginx und einen anderen mit dem Apache HTTP Server.
Zunächst erstellen wir ein Verzeichnis für die Definition des Apache-Stacks. Navigieren Sie zurück in das Verzeichnis ~/project und erstellen Sie ein neues Verzeichnis namens my-apache-stack.
cd ~/project
mkdir my-apache-stack
cd my-apache-stack
Nun erstellen Sie mithilfe des Editors nano eine Datei namens docker-compose.yml im Verzeichnis my-apache-stack.
nano docker-compose.yml
Fügen Sie den folgenden Inhalt in die Datei docker-compose.yml ein:
version: "3.8"
services:
web:
image: httpd:latest
ports:
- "81:80"
deploy:
replicas: 1
restart_policy:
condition: on-failure
Diese docker-compose.yml-Datei definiert einen Dienst namens web, der das Image httpd:latest verwendet. Sie ordnet Port 81 auf dem Host Port 80 im Container zu, um Portkonflikte mit dem Nginx-Stack, den wir später bereitstellen werden, zu vermeiden. Sie gibt auch eine Replik und eine Neustartrichtlinie an.
Speichern Sie die Datei, indem Sie Strg + X, dann Y und Enter drücken.
Bevor wir den Stack bereitstellen, laden wir das Image httpd:latest herunter.
docker pull httpd:latest
Nun stellen wir den Apache-Stack mithilfe des Befehls docker stack deploy bereit. Wir nennen diesen Stack apache_stack.
docker stack deploy -c docker-compose.yml apache_stack
Dieser Befehl stellt den Apache-Stack bereit.
Als nächstes gehen wir zurück in das Verzeichnis my-nginx-stack, um den Nginx-Stack erneut bereitzustellen.
cd ~/project/my-nginx-stack
Stellen Sie den Nginx-Stack mithilfe des Befehls docker stack deploy bereit. Wir nennen diesen Stack nginx_stack.
docker stack deploy -c docker-compose.yml nginx_stack
Jetzt überprüfen wir, ob beide Stacks bereitgestellt wurden. Listen Sie die bereitgestellten Stacks auf.
docker stack ls
Sie sollten sowohl apache_stack als auch nginx_stack in der Liste sehen.
Sie können auch die Dienste für jeden Stack einzeln überprüfen.
docker stack services apache_stack
docker stack services nginx_stack
Sie sollten den Dienst apache_stack_web und den Dienst nginx_stack_web sehen, beide mit 1/1 laufenden Repliken.
Sie können den Apache-Webserver erreichen, indem Sie einen Webbrowser öffnen und zur IP-Adresse Ihrer LabEx-VM auf Port 81 navigieren. Sie sollten die Standard-Willkommensseite von Apache sehen. Der Nginx-Webserver sollte weiterhin auf Port 80 erreichbar sein.