Kombiner Docker og Tomcat

Kombiner Docker Og Tomcat



Apache Tomcat er en åpen kildekode-nettserver og servletbeholder utviklet av Apache Software Foundation (ASF).

Tomcat implementerer Java Servlet- og JavaServer Pages-spesifikasjonene fra Oracle, og det gir et rent Java HTTP-nettservermiljø for Java-koden å kjøre i.







I denne opplæringen lærer vi hvordan du kombinerer Docker og Tomcat for å distribuere en Tomcat 'hello world'-applikasjon ved å bruke Tomcat som en beholder.



Krav:

For å lykkes med å følge og bruke instruksjonene og koden i denne opplæringen, sørg for at du har følgende:



    1. Installert Docker Engine på vertsmaskinen din
    2. Installert Java JDK på maskinen din for å teste Java-koden (valgfritt)
    3. En tekstredigerer for å redigere kildekoden og Docker-konfigurasjoner

Med de gitte kravene oppfylt, kan vi fortsette og lære hvordan du distribuerer en Tomcat-app ved hjelp av Docker.





Trekk Tomcat-bildet i Docker

Heldigvis trenger vi ikke å konfigurere et basisbilde som inneholder alle verktøyene for å kjøre en Tomcat-applikasjon. Vi kan ganske enkelt bruke Tomcat-bildet fra Docker Hub.

For å trekke bildet kan vi kjøre kommandoen som følger:



$ docker pull tomcat


Lag en Hello World-applikasjon

Det neste trinnet er å lage 'Hello World'-applikasjonen. Start med å lage en katalog for å lagre kildekoden din og naviger inn i katalogen.

$ mkdir Hei Verden && cd Hei Verden


Inne i rotkatalogen oppretter du en webapp-mappe og oppretter en WEB-INF-mappe i den.

Katalogstrukturen din skal se slik ut:

Hei Verden /
└── nettapp
└── WEB-INF

3 kataloger, 0 filer


Deretter navigerer du inn i WEB-INF-katalogen og oppretter en 'web.xml'-fil med følgende kode:

< ?xml versjon = '1.0' koding = 'UTF-8' ? >
< web-app xmlns = 'http://xmlns.jcp.org/xml/ns/javaee'
xmlns: xsi = 'http://www.w3.org/2001/XMLSchema-instance'
xsi: skjemaPlassering = 'http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd'
versjon = '4.0' >
< servlet >
< servlet-navn > Hei Verden servlet-navn >
< servlet-klassen > HelloWorldServlet servlet-klassen >
servlet >
< servlet-mapping >
< servlet-navn > Hei Verden servlet-navn >
< url-mønster >/ Hallo url-mønster >
servlet-mapping >
web-app >


Lagre filen og lukk redigeringsprogrammet.

Tilbake i terminalvinduet ditt, lag en 'HelloWorldServlet.java' i WEB-INF/classes-katalogen.

$ mkdir klasser
$ ta på HelloWorldServlet.java


Legg til innholdet i applikasjonen som vist i følgende:

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

offentlig klasse HelloWorldServlet utvider HttpServlet {
offentlig void doGet ( HttpServletRequest-forespørsel, HttpServletResponse-svar )
kaster ServletException, IOException {
response.setContentType ( 'tekst/html' ) ;
PrintWriter out = response.getWriter ( ) ;
ut.println ( '' ) ;
ut.println ( 'Hello World Servlet' ) ;
ut.println ( «» ) ;
ut.println ( '

Hei verden!

'
) ;
ut.println ( '' ) ;
}
}


Dette setter opp en grunnleggende Tomcat-servlet som skriver ut 'Hello world'.



Definer Dockerfilen

Det neste trinnet for oss er å definere Dockerfilen for å bygge et tilpasset bilde som inkluderer vår 'Hello World'-app.

Inne i rotkatalogen, lag en ny fil kalt 'Dockerfile':







$ ta på ~ / Hei Verden / Dockerfil


Rediger filen og legg til konfigurasjonen som følger:

# sett Tomcat-grunnbilde
FRA tomcat:siste

# Kopier Hello World-applikasjonen til Tomcat webapps-katalogen
KOPI . / webapp / usr / lokale / Tomcat / webapper / minapp
# Utsett port 8080 for Tomcat
AVDEKKE 8080


Du bør ha katalogoppsettet som følger:

Hei Verden
├── Dockerfil
└── nettapp
└── WEB-INF
├── klasser
│   └── HelloWorldServlet.java
└── web.xml

4 kataloger, 3 filer

Bygg bildet

Deretter bygger vi det tilpassede Tomcat-bildet som vist i følgende kommando:

$ dockerbygg -t tomcat-app.


Kjør beholderen

Når vi har bildet klart, kan vi kjøre beholderen fra bildet ved å bruke kommandoen som følger:

$ docker run -d -s 8080 : 8080 --Navn tomcat-container tomcat-app


Dette skal bygge Tomcat-beholderen fra tomcat-app-bildet som vi opprettet i forrige trinn og binde det til port 8080 på vertsmaskinen.

Få tilgang til applikasjonen

Åpne en nettleser og naviger til . Du bør se 'Hei, verden!' melding som vises i nettleseren din.

Konklusjon

Gratulerer! Du har implementert en 'Hello World'-applikasjon i en Dockerized Tomcat-beholder.