Kombinieren Sie Docker und Tomcat

Kombinieren Sie Docker Und Tomcat



Apache Tomcat ist ein Open-Source-Webserver und Servlet-Container, der von der Apache Software Foundation (ASF) entwickelt wurde.

Tomcat implementiert die Java-Servlet- und JavaServer-Pages-Spezifikationen von Oracle und stellt eine reine Java-HTTP-Webserverumgebung für die Ausführung des Java-Codes bereit.







In diesem Tutorial erfahren Sie, wie Sie Docker und Tomcat kombinieren, um eine Tomcat-„Hallo Welt“-Anwendung mit Tomcat als Container bereitzustellen.



Anforderungen:

Um die Anweisungen und den Code in diesem Tutorial erfolgreich befolgen und verwenden zu können, stellen Sie sicher, dass Sie über Folgendes verfügen:



    1. Installierte Docker Engine auf Ihrem Host-Computer
    2. Installierte Java JDK auf Ihrem Computer, um Ihren Java-Code zu testen (optional)
    3. Ein Texteditor zum Bearbeiten des Quellcodes und der Docker-Konfigurationen

Wenn die gegebenen Anforderungen erfüllt sind, können wir fortfahren und lernen, wie man eine Tomcat-App mit Docker bereitstellt.





Ziehen Sie das Tomcat-Image in Docker

Glücklicherweise müssen wir kein Basis-Image konfigurieren, das alle Tools zum Ausführen einer Tomcat-Anwendung enthält. Wir können einfach das Tomcat-Image vom Docker Hub verwenden.

Um das Bild abzurufen, können wir den Befehl wie folgt ausführen:



$ Docker Pull Tomcat


Erstellen Sie eine Hello World-Anwendung

Der nächste Schritt besteht darin, die Anwendung „Hello World“ zu erstellen. Erstellen Sie zunächst ein Verzeichnis zum Speichern Ihres Quellcodes und navigieren Sie in das Verzeichnis.

$ mkdir Hallo Welt && CD Hallo Welt


Erstellen Sie im Stammverzeichnis einen Webapp-Ordner und darin einen WEB-INF-Ordner.

Ihre Verzeichnisstruktur sollte so aussehen:

Hallo Welt /
└── Webapp
└── WEB-INF

3 Verzeichnisse, 0 Dateien


Navigieren Sie als Nächstes in das WEB-INF-Verzeichnis und erstellen Sie eine „web.xml“-Datei mit dem folgenden Code:

< ?xml Ausführung = „1,0“ Codierung = „UTF-8“ ? >
< Web-App xmlns = „http://xmlns.jcp.org/xml/ns/javaee“
xmlns: xsi = „http://www.w3.org/2001/XMLSchema-instance“
xsi: SchemaLocation = „http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd“
Ausführung = „4,0“ >
< Servlet >
< Servlet-Name > Hallo Welt Servlet-Name >
< Servlet-Klasse > HelloWorldServlet Servlet-Klasse >
Servlet >
< Servlet-Mapping >
< Servlet-Name > Hallo Welt Servlet-Name >
< URL-Muster >/ Hallo URL-Muster >
Servlet-Mapping >
Web-App >


Speichern Sie die Datei und schließen Sie den Editor.

Zurück in Ihrem Terminalfenster erstellen Sie eine „HelloWorldServlet.java“ im Verzeichnis WEB-INF/classes.

$ mkdir Klassen
$ berühren HelloWorldServlet.java


Fügen Sie den Inhalt der Anwendung wie folgt hinzu:

javax.servlet importieren. * ;
javax.servlet.http importieren. * ;
java.io importieren. * ;

Die öffentliche Klasse HelloWorldServlet erweitert HttpServlet {
öffentliche Leere doGet ( HttpServletRequest-Anfrage, HttpServletResponse-Antwort )
löst ServletException, IOException aus {
Antwort.setContentType ( „text/html“ ) ;
PrintWriter out = Response.getWriter ( ) ;
out.println ( „“ ) ;
out.println (Hello World Servlet ) ;
out.println ( ) ;
out.println (

Hallo Welt!

) ;
out.println ( ) ;
}
}


Dadurch wird ein grundlegendes Tomcat-Servlet eingerichtet, das „Hallo Welt“ ausgibt.



Definieren Sie die Docker-Datei

Der nächste Schritt für uns besteht darin, die Docker-Datei zu definieren, um ein benutzerdefiniertes Image zu erstellen, das unsere „Hello World“-App enthält.

Erstellen Sie im Stammverzeichnis eine neue Datei mit dem Namen „Dockerfile“:







$ berühren ~ / Hallo Welt / Docker-Datei


Bearbeiten Sie die Datei und fügen Sie die Konfiguration wie folgt hinzu:

# Tomcat-Basisbild festlegen
VON tomcat:latest

# Kopieren Sie die Hello World-Anwendung in das Tomcat-Webapps-Verzeichnis
KOPIEREN . / Web-App / usr / lokal / Kater / Webapps / meine App
# Port 8080 für Tomcat freigeben
EXPONIEREN 8080


Das Verzeichnislayout sollte wie folgt sein:

Hallo Welt
├── Docker-Datei
└── Webapp
└── WEB-INF
├── Klassen
│   └── HelloWorldServlet.java
└── web.xml

4 Verzeichnisse, 3 Dateien

Erstellen Sie das Bild

Als Nächstes erstellen wir das benutzerdefinierte Tomcat-Image wie im folgenden Befehl gezeigt:

$ Docker-Build -T Tomcat-App .


Führen Sie den Container aus

Sobald wir das Image fertig haben, können wir den Container mit dem folgenden Befehl aus dem Image ausführen:

$ Docker-Lauf -D -P 8080 : 8080 --Name Tomcat-Container Tomcat-App


Dadurch sollte der Tomcat-Container aus dem Tomcat-App-Image erstellt werden, das wir im vorherigen Schritt erstellt haben, und ihn an Port 8080 auf dem Host-Computer binden.

Greifen Sie auf die Anwendung zu

Öffnen Sie einen Webbrowser und navigieren Sie zu . Sie sollten die Meldung „Hello, World!“ sehen. Meldung, die in Ihrem Browser angezeigt wird.

Abschluss

Glückwunsch! Sie haben erfolgreich eine „Hello World“-Anwendung in einem Docker-Tomcat-Container bereitgestellt.