Verwaltung des Lebenszyklus einer im Docker-Container bereitgestellten Webanwendung mit dem Tomcat-Manager

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Dieses Tutorial führt Sie durch den Prozess der Verwaltung des Lebenszyklus einer Webanwendung, die in einem Docker-Container mit dem Tomcat-Manager bereitgestellt wird. Sie lernen, wie Sie Ihre Webanwendung bereitstellen, starten, stoppen und überwachen, um optimale Leistung und Zuverlässigkeit sicherzustellen.

Docker und Tomcat verstehen

Was ist Docker?

Docker ist eine Open-Source-Plattform, die Entwicklern ermöglicht, Anwendungen in einer containerisierten Umgebung zu erstellen, bereitzustellen und auszuführen. Container sind leichte, eigenständige und ausführbare Pakete, die alle notwendigen Komponenten zum Ausführen einer Anwendung enthalten, wie z. B. den Code, die Laufzeitumgebung, Systemtools und Bibliotheken. Docker vereinfacht den Prozess der Erstellung, Bereitstellung und Verwaltung von Anwendungen, indem es eine konsistente und zuverlässige Methode zum Verpacken und Verteilen von Software bietet.

Was ist Tomcat?

Apache Tomcat ist ein Open-Source-Webserver und Servlet-Container, der häufig zum Hosten von Java-basierten Webanwendungen verwendet wird. Tomcat stellt eine Laufzeitumgebung für Java-Servlets und JavaServer Pages (JSP) bereit, sodass Entwickler ihre Webanwendungen auf einem Server bereitstellen und ausführen können. Tomcat zeichnet sich durch seine Einfachheit, Flexibilität und robuste Leistung aus und ist daher eine beliebte Wahl für die Entwicklung und Bereitstellung von Webanwendungen.

Integration von Docker und Tomcat

Die Kombination von Docker und Tomcat bietet mehrere Vorteile für die Verwaltung von Webanwendungen. Durch das Verpacken einer Tomcat-basierten Webanwendung in einen Docker-Container können Sie eine konsistente und zuverlässige Bereitstellung über verschiedene Umgebungen hinweg gewährleisten, vom Entwicklungs- bis zum Produktionsumfeld. Dieser Ansatz hilft, gängige Herausforderungen wie Umgebungsunterschiede, Abhängigkeitskonflikte und Skalierungsprobleme zu bewältigen.

graph TD A[Entwickler] --> B[Docker Image] B --> C[Docker Container] C --> D[Tomcat Laufzeitumgebung] D --> E[Webanwendung]

Tomcat Manager-Anwendung

Die Tomcat Manager-Anwendung ist eine webbasierte Oberfläche, die es Ihnen ermöglicht, den Lebenszyklus von auf einem Tomcat-Server bereitgestellten Webanwendungen zu verwalten. Mit dem Tomcat Manager können Sie verschiedene Operationen durchführen, wie z. B.:

  • Bereitstellung neuer Webanwendungen
  • Aktualisierung bestehender Webanwendungen
  • Starten, Stoppen und Neustarten von Webanwendungen
  • Anzeigen des Status und der Logs von Webanwendungen

Die Tomcat Manager-Anwendung bietet eine bequeme Möglichkeit, die Bereitstellung und Ausführung Ihrer Webanwendungen zu verwalten, insbesondere bei der Arbeit mit containerisierten Umgebungen wie Docker.

Bereitstellung einer Web-App in einem Docker-Container

Vorbereitung der Webanwendung

Nehmen Sie an, Sie haben eine Java-basierte Webanwendung, die Sie in einem Docker-Container bereitstellen möchten. Zuerst müssen Sie Ihre Webanwendung als WAR-Datei (Web Application Archive) verpacken. Dies kann durch das Erstellen Ihrer Anwendung mit einem Build-Tool wie Maven oder Gradle erfolgen.

Erstellen eines Dockerfiles

Um Ihre Webanwendung zu containerisieren, müssen Sie ein Dockerfile erstellen. Ein Dockerfile ist eine Textdatei, die alle Befehle enthält, die ein Benutzer auf der Kommandozeile ausführen könnte, um ein Docker-Image zu erstellen. Hier ist ein Beispiel-Dockerfile für eine Tomcat-basierte Webanwendung:

FROM tomcat:9.0
COPY target/*.war /usr/local/tomcat/webapps/

In diesem Dockerfile starten wir mit dem offiziellen Tomcat 9.0-Image als Basis und kopieren anschließend die WAR-Datei unserer Webanwendung in den Tomcat-Webapps-Verzeichnis.

Erstellen des Docker-Images

Sobald Sie das Dockerfile haben, können Sie das Docker-Image mit folgendem Befehl erstellen:

docker build -t my-web-app .

Dieser Befehl erstellt ein neues Docker-Image mit dem Namen "my-web-app" basierend auf den Anweisungen im Dockerfile.

Ausführen des Docker-Containers

Nachdem Sie das Docker-Image erstellt haben, können Sie einen Container basierend auf diesem Image mit folgendem Befehl ausführen:

docker run -d -p 8080:8080 --name my-web-app-container my-web-app

Dieser Befehl startet einen neuen Docker-Container mit dem Namen "my-web-app-container" und ordnet den Port 8080 des Containers dem Port 8080 des Hostsystems zu. Der Flag -d führt den Container im detachierten Modus aus, sodass er im Hintergrund läuft.

graph TD A[Dockerfile] --> B[Docker Image] B --> C[Docker Container] C --> D[Tomcat Laufzeitumgebung] D --> E[Webanwendung]

Jetzt können Sie Ihre Webanwendung aufrufen, indem Sie http://localhost:8080 in Ihrem Webbrowser besuchen.

Verwaltung des Web-App-Lebenszyklus mit Tomcat

Zugriff auf die Tomcat Manager-Anwendung

Um den Lebenszyklus Ihrer im Docker-Container bereitgestellten Webanwendung zu verwalten, können Sie die Tomcat Manager-Anwendung verwenden. Standardmäßig ist die Tomcat Manager-Anwendung unter dem Kontextpfad /manager auf Ihrem Tomcat-Server erreichbar.

Um auf die Tomcat Manager-Anwendung zuzugreifen, müssen Sie einen Benutzer mit den entsprechenden Berechtigungen konfigurieren. Sie können dies tun, indem Sie die Datei tomcat-users.xml bearbeiten, die sich typischerweise im Verzeichnis conf Ihrer Tomcat-Installation befindet.

Hier ist ein Beispiel für eine Konfiguration:

<tomcat-users>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user username="admin" password="password" roles="manager-gui,manager-script"/>
</tomcat-users>

Diese Konfiguration erstellt einen Benutzer namens "admin" mit den Rollen "manager-gui" und "manager-script", die den Zugriff auf die Tomcat Manager-Anwendung ermöglichen.

Bereitstellung einer Webanwendung

Sobald Sie die Tomcat Manager-Anwendung konfiguriert haben, können Sie sie verwenden, um Ihre Webanwendung bereitzustellen. Hier ist ein Beispiel dafür, wie Sie eine Webanwendung mithilfe der Tomcat Manager-Anwendung bereitstellen:

  1. Melden Sie sich mit den zuvor konfigurierten Anmeldeinformationen bei der Tomcat Manager-Anwendung an.
  2. Geben Sie im Abschnitt "Bereitstellen" den Kontextpfad für Ihre Webanwendung ein (z. B. "/my-web-app").
  3. Wählen Sie die Option "WAR-Datei zum Bereitstellen" und wählen Sie die WAR-Datei Ihrer Webanwendung aus.
  4. Klicken Sie auf die Schaltfläche "Bereitstellen", um den Bereitstellungsprozess zu starten.

Nach Abschluss der Bereitstellung wird Ihre Webanwendung in der Tomcat Manager-Anwendung aufgeführt, und Sie können sie bei Bedarf starten, stoppen oder neu starten.

Aktualisierung einer Webanwendung

Um eine vorhandene Webanwendung zu aktualisieren, können Sie einen ähnlichen Prozess befolgen:

  1. Melden Sie sich bei der Tomcat Manager-Anwendung an.
  2. Suchen Sie im Abschnitt "Anwendungen" die Webanwendung, die Sie aktualisieren möchten.
  3. Klicken Sie auf die Schaltfläche "Abmelden", um die vorhandene Bereitstellung zu entfernen.
  4. Befolgen Sie die Schritte zum Bereitstellen einer neuen Webanwendung, wobei Sie die aktualisierte WAR-Datei verwenden.

Überwachung und Fehlerbehebung

Die Tomcat Manager-Anwendung bietet verschiedene Funktionen zur Überwachung und Fehlerbehebung Ihrer Webanwendungen. Sie können den Status, die Protokolle und die Leistungsmetriken Ihrer bereitgestellten Webanwendungen anzeigen, um auftretende Probleme zu identifizieren und zu lösen.

Durch die Nutzung der Tomcat Manager-Anwendung können Sie den Lebenszyklus Ihrer im Docker-Container bereitgestellten Webanwendungen effizient verwalten und so eine konsistente und zuverlässige Bereitstellung, Aktualisierung und Überwachung gewährleisten.

Zusammenfassung

Am Ende dieses Tutorials verfügen Sie über ein umfassendes Verständnis dafür, wie Sie Docker und den Tomcat-Manager nutzen können, um den Lebenszyklus Ihrer Webanwendung effektiv zu verwalten. Dieses Wissen ermöglicht es Ihnen, Ihren Bereitstellungsprozess zu optimieren, die Verfügbarkeit der Anwendung zu verbessern und mehr Kontrolle über Ihre containerisierten Webumgebungen zu erlangen.