Wie man eine WAR-Datei auf einem containerbasierten Anwendungs-Server bereitstellt

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 Bereitstellung einer WAR-Datei (Web Application Archive) auf einem containerbasierten Anwendungs-Server mithilfe von Docker. Sie erfahren, wie Sie den containerbasierten Anwendungs-Server konfigurieren und Ihre WAR-Datei nahtlos integrieren, um einen reibungslosen und effizienten Bereitstellungsprozess zu gewährleisten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/start("Start Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/run -.-> lab-411530{{"Wie man eine WAR-Datei auf einem containerbasierten Anwendungs-Server bereitstellt"}} docker/start -.-> lab-411530{{"Wie man eine WAR-Datei auf einem containerbasierten Anwendungs-Server bereitstellt"}} docker/create -.-> lab-411530{{"Wie man eine WAR-Datei auf einem containerbasierten Anwendungs-Server bereitstellt"}} docker/pull -.-> lab-411530{{"Wie man eine WAR-Datei auf einem containerbasierten Anwendungs-Server bereitstellt"}} docker/build -.-> lab-411530{{"Wie man eine WAR-Datei auf einem containerbasierten Anwendungs-Server bereitstellt"}} end

Grundlagen von Docker und WAR-Dateien

Docker ist eine beliebte Open-Source-Plattform, die die Entwicklung, Bereitstellung und Verwaltung von Anwendungen in containerisierten Umgebungen ermöglicht. Eine WAR-Datei (Web Application Archive) hingegen ist ein Standard-Paketformat für Java-Webanwendungen, das den Code, die Ressourcen und die Konfigurationsdateien der Anwendung enthält.

Was ist Docker?

Docker ist ein Tool, das es Entwicklern ermöglicht, ihre Anwendungen und alle Abhängigkeiten in eine standardisierte Einheit namens Container zu packen. Container sind leichtgewichtig, portabel und eigenständig, was es einfach macht, Anwendungen konsistent in verschiedenen Umgebungen, von der Entwicklung bis zur Produktion, bereitzustellen und auszuführen.

Was ist eine WAR-Datei?

Eine WAR-Datei ist ein Archiv für Java-Webanwendungen, das alle erforderlichen Komponenten für eine Webanwendung enthält, einschließlich Servlets, JSPs, Java-Klassen und anderen Ressourcen. WAR-Dateien werden normalerweise auf einem Java-Anwendungsserver wie Apache Tomcat oder JBoss bereitgestellt, der dann die Webanwendung ausführt.

Vorteile der Bereitstellung einer WAR-Datei in einem Docker-Container

Die Bereitstellung einer WAR-Datei in einem Docker-Container bietet mehrere Vorteile:

  • Konsistenz: Container stellen sicher, dass die Anwendung und ihre Abhängigkeiten zusammen gepackt werden, was es einfacher macht, die Konsistenz in verschiedenen Umgebungen aufrechtzuerhalten.
  • Skalierbarkeit: Container können einfach hoch- oder herunterskaliert werden, um sich an wechselnde Anforderungen anzupassen, was die Gesamt-Skalierbarkeit der Anwendung verbessert.
  • Portabilität: Containerisierte Anwendungen können einfach zwischen verschiedenen Plattformen und Umgebungen verschoben werden, wodurch das Risiko von Kompatibilitätsproblemen verringert wird.
  • Isolation: Container bieten ein hohes Maß an Isolation und stellen sicher, dass die Abhängigkeiten und Konfigurationen einer Anwendung nicht mit denen einer anderen interferieren.

Vorbereitung der Docker-Umgebung

Bevor Sie eine WAR-Datei in einem Docker-Container bereitstellen, müssen Sie eine Docker-Umgebung einrichten. Dies umfasst in der Regel die Installation von Docker auf Ihrem System und die Vertrautheit mit grundlegenden Docker-Befehlen. Sie können Docker auf Ubuntu 22.04 mit den folgenden Befehlen installieren:

sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker

Nach der Installation von Docker können Sie die Installation überprüfen, indem Sie den folgenden Befehl ausführen:

docker version

Dies zeigt die auf Ihrem System installierte Docker-Version an.

Bereitstellung einer WAR-Datei in einem Docker-Container

Erstellung eines Docker-Images mit einer WAR-Datei

Um eine WAR-Datei in einem Docker-Container bereitzustellen, müssen Sie zunächst ein Docker-Image erstellen, das die WAR-Datei enthält. Hier ist ein Beispiel für eine Dockerfile, die den Prozess veranschaulicht:

## Verwenden Sie ein Basisimage mit installiertem Java
FROM openjdk:8-jdk-alpine

## Setzen Sie das Arbeitsverzeichnis
WORKDIR /app

## Kopieren Sie die WAR-Datei in den Container
COPY my-application.war.

## Öffnen Sie den Port, auf dem die Anwendung laufen wird
EXPOSE 8080

## Setzen Sie den Befehl, um den Anwendungsserver zu starten und die WAR-Datei bereitzustellen
CMD ["java", "-jar", "my-application.war"]

In diesem Beispiel verwenden wir das Basisimage openjdk:8-jdk-alpine, das die Java-Laufzeitumgebung enthält. Anschließend kopieren wir die WAR-Datei (my-application.war) in das Arbeitsverzeichnis des Containers (/app), öffnen Port 8080 und setzen den Befehl, um den Anwendungsserver zu starten und die WAR-Datei bereitzustellen.

Um das Docker-Image zu erstellen, führen Sie den folgenden Befehl im gleichen Verzeichnis wie die Dockerfile aus:

docker build -t my-application.

Dadurch wird ein Docker-Image namens my-application erstellt, das die WAR-Datei enthält.

Ausführen des Docker-Containers

Sobald das Docker-Image erstellt ist, können Sie den Container mit dem folgenden Befehl ausführen:

docker run -p 8080:8080 my-application

Dadurch wird der Container gestartet und Port 8080 auf dem Host wird auf Port 8080 im Container gemappt, sodass Sie die Webanwendung von Ihrem lokalen Rechner aus zugreifen können.

Sie können überprüfen, ob der Container läuft, indem Sie den folgenden Befehl verwenden:

docker ps

Dies listet alle laufenden Container auf, einschließlich des gerade gestarteten.

Konfiguration des containerbasierten Anwendungs-Servers

Beim Bereitstellen einer WAR-Datei in einem Docker-Container müssen Sie möglicherweise den zugrunde liegenden Anwendungs-Server konfigurieren, um sicherzustellen, dass die Webanwendung korrekt läuft. Hier sind einige häufige Konfigurationsaufgaben, die Sie möglicherweise ausführen müssen:

Konfiguration des Anwendungs-Server-Ports

Standardmäßig hört der im Docker-Container laufende Anwendungs-Server auf einem bestimmten Port, der möglicherweise nicht mit dem Port übereinstimmt, den Sie auf dem Host-Rechner freigeben möchten. Sie können die Portzuordnung mit der -p- oder --publish-Option konfigurieren, wenn Sie den Docker-Container starten:

docker run -p 8080:8080 my-application

Dadurch wird Port 8080 auf dem Host-Rechner auf Port 8080 im Container gemappt, sodass Sie die Webanwendung unter http://localhost:8080 zugreifen können.

Konfiguration von Umgebungsvariablen des Anwendungs-Servers

Der im Docker-Container laufende Anwendungs-Server erfordert möglicherweise bestimmte Umgebungsvariablen. Sie können diese Umgebungsvariablen mit der -e- oder --env-Option festlegen, wenn Sie den Docker-Container starten:

docker run -e DB_HOST=mydb.example.com -e DB_PASSWORD=mypassword my-application

Dadurch werden die Umgebungsvariablen DB_HOST und DB_PASSWORD im Container festgelegt, auf die der Anwendungs-Server und die Webanwendung zugreifen können.

Konfiguration der Protokollierung des Anwendungs-Servers

Der im Docker-Container laufende Anwendungs-Server kann Protokolle generieren, auf die Sie zu Debugging- oder Überwachungszwecken zugreifen müssen. Sie können das Protokollierungsverhalten konfigurieren, indem Sie ein Host-Verzeichnis als Volume einbinden, wenn Sie den Docker-Container starten:

docker run -v /path/to/logs:/var/log/app my-application

Dadurch wird das Verzeichnis /path/to/logs auf dem Host-Rechner auf das Verzeichnis /var/log/app im Container gemappt, sodass Sie die Protokolle des Anwendungs-Servers vom Host-Rechner aus zugreifen können.

Konfiguration der Ressourcen des Anwendungs-Servers

Der im Docker-Container laufende Anwendungs-Server erfordert möglicherweise bestimmte Ressourcenzuweisungen, wie z. B. CPU oder Arbeitsspeicher. Sie können diese Ressourcenzuweisungen mit verschiedenen Docker-Start-Optionen wie --cpus oder --memory konfigurieren:

docker run --cpus 2 --memory 4g my-application

Dadurch werden 2 CPU-Kerne und 4 GB Arbeitsspeicher dem Container zugewiesen, in dem der Anwendungs-Server läuft.

Durch die Konfiguration des im Docker-Container laufenden Anwendungs-Servers können Sie sicherstellen, dass Ihre Webanwendung in der containerisierten Umgebung korrekt bereitgestellt und ausgeführt wird.

Zusammenfassung

Durch die Befolgung dieses Tutorials werden Sie ein umfassendes Verständnis dafür erlangen, wie Sie eine WAR-Datei auf einem containerbasierten Anwendungs-Server mithilfe von Docker bereitstellen können. Sie erfahren die erforderlichen Schritte, um den containerbasierten Anwendungs-Server zu konfigurieren und Ihre WAR-Datei erfolgreich zu integrieren. Dadurch können Sie Ihre Webanwendungen effizient in einer containerisierten Umgebung verwalten und bereitstellen.