Bereitstellung mehrerer Beispiel-Stacks
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.