Kombinera Docker och Tomcat

Kombinera Docker Och Tomcat



Apache Tomcat är en webbserver med öppen källkod och servletbehållare utvecklad av Apache Software Foundation (ASF).

Tomcat implementerar Java Servlet och JavaServer Pages-specifikationerna från Oracle och det tillhandahåller en ren Java HTTP-webbservermiljö för Java-koden att köras i.







I den här handledningen kommer vi att lära oss hur man kombinerar Docker och Tomcat för att distribuera en Tomcat 'hello world'-applikation med Tomcat som en behållare.



Krav:

För att framgångsrikt följa och använda instruktionerna och koden i denna handledning, se till att du har följande:



    1. Installerade Docker Engine på din värddator
    2. Installerade Java JDK på din maskin för att testa din Java-kod (valfritt)
    3. En textredigerare för att redigera källkoden och Docker-konfigurationer

Med de givna kraven uppfyllda kan vi fortsätta och lära oss hur man distribuerar en Tomcat-app med Docker.





Dra Tomcat-bilden i Docker

Som tur är behöver vi inte konfigurera en basbild som innehåller alla verktyg för att köra en Tomcat-applikation. Vi kan helt enkelt använda Tomcat-bilden från Docker Hub.

För att dra bilden kan vi köra kommandot enligt följande:



$ docker pull tomcat


Skapa en Hello World-applikation

Nästa steg är att skapa applikationen 'Hello World'. Börja med att skapa en katalog för att lagra din källkod och navigera in i katalogen.

$ mkdir Hej världen && CD Hej världen


Inuti rotkatalogen, skapa en webapp-mapp och skapa en WEB-INF-mapp i den.

Din katalogstruktur bör se ut så här:

Hej världen /
└── webbapp
└── WEB-INF

3 kataloger, 0 filer


Navigera sedan in i WEB-INF-katalogen och skapa en 'web.xml'-fil med följande kod:

< ?xml version = '1.0' kodning = 'UTF-8' ? >
< webb-app xmlns = 'http://xmlns.jcp.org/xml/ns/javaee'
xmlns: xsi = 'http://www.w3.org/2001/XMLSchema-instance'
xsi: schemaPlats = 'http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd'
version = '4.0' >
< servlett >
< servlet-namn > Hej världen servlet-namn >
< servlet-klass > HelloWorldServlet servlet-klass >
servlett >
< servlet-mappning >
< servlet-namn > Hej världen servlet-namn >
< url-mönster >/ Hallå url-mönster >
servlet-mappning >
webb-app >


Spara filen och stäng redigeraren.

Tillbaka i ditt terminalfönster, skapa en 'HelloWorldServlet.java' i WEB-INF/classes-katalogen.

$ mkdir klasser
$ Rör HelloWorldServlet.java


Lägg till innehållet i programmet som visas i följande:

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

public class HelloWorldServlet utökar HttpServlet {
public void doGet ( HttpServletRequest-begäran, HttpServletResponse-svar )
kastar ServletException, IOException {
response.setContentType ( 'text/html' ) ;
PrintWriter out = response.getWriter ( ) ;
out.println ( '' ) ;
out.println ( 'Hello World Servlet' ) ;
out.println ( '' ) ;
out.println ( '

Hej världen!

'
) ;
out.println ( '' ) ;
}
}


Detta skapar en grundläggande Tomcat-servlet som skriver ut 'Hello world'.



Definiera dockerfilen

Nästa steg för oss är att definiera Dockerfilen för att bygga en anpassad bild som inkluderar vår 'Hello World'-app.

Inuti rotkatalogen, skapa en ny fil som heter 'Dockerfile':







$ Rör ~ / Hej världen / Dockerfil


Redigera filen och lägg till konfigurationen enligt följande:

# ställ in Tomcat-basbild
FRÅN Tomcat:senaste

# Kopiera Hello World-applikationen till Tomcats webbappskatalog
KOPIERA . / webbapp / usr / lokal / hankatt / webbappar / minapp
# Exponera port 8080 för Tomcat
ÖVERSIKT 8080


Du bör ha kataloglayouten enligt följande:

Hej världen
├── Dockerfil
└── webbapp
└── WEB-INF
├── klasser
│   └── HelloWorldServlet.java
└── web.xml

4 kataloger, 3 filer

Bygg bilden

Därefter bygger vi den anpassade Tomcat-bilden som visas i följande kommando:

$ hamnarbyggare -t tomcat-app.


Kör behållaren

När vi har bilden klar kan vi köra behållaren från bilden med kommandot enligt följande:

$ hamnarkörning -d -s 8080 : 8080 --namn tomcat-container tomcat-app


Detta bör bygga Tomcat-behållaren från tomcat-app-bilden som vi skapade i föregående steg och binda den till port 8080 på värddatorn.

Gå till applikationen

Öppna en webbläsare och navigera till . Du borde se 'Hej världen!' meddelande som visas i din webbläsare.

Slutsats

Grattis! Du har framgångsrikt distribuerat en 'Hello World'-applikation i en Dockerized Tomcat-behållare.