Combineer Docker en Tomcat

Combineer Docker En Tomcat



Apache Tomcat is een open-source webserver en servletcontainer ontwikkeld door de Apache Software Foundation (ASF).

Tomcat implementeert de Java Servlet- en JavaServer Pages-specificaties van Oracle en biedt een pure Java HTTP-webserveromgeving waarin de Java-code kan worden uitgevoerd.







In deze tutorial leren we hoe we Docker en Tomcat kunnen combineren om een ​​Tomcat “hello world”-applicatie te implementeren met Tomcat als container.



Vereisten:

Om de instructies en code uit deze zelfstudie succesvol te kunnen volgen en gebruiken, moet u ervoor zorgen dat u over het volgende beschikt:



    1. Docker Engine op uw hostcomputer geïnstalleerd
    2. Java JDK op uw machine geïnstalleerd om uw Java-code te testen (optioneel)
    3. Een teksteditor om de broncode en Docker-configuraties te bewerken

Als aan de gegeven vereisten is voldaan, kunnen we verder gaan en leren hoe we een Tomcat-app kunnen implementeren met Docker.





Trek de Tomcat-afbeelding in Docker

Gelukkig hoeven we geen basisimage te configureren die alle tools bevat om een ​​Tomcat-applicatie uit te voeren. We kunnen eenvoudig de Tomcat-afbeelding van de Docker Hub gebruiken.

Om de afbeelding op te halen, kunnen we de opdracht als volgt uitvoeren:



$ havenarbeider trek kater


Maak een Hello World-applicatie

De volgende stap is het maken van de applicatie “Hello World”. Begin met het maken van een map om uw broncode op te slaan en navigeer naar de map.

$ mkdir Hallo Wereld && CD Hallo Wereld


Maak in de hoofdmap een webapp-map en maak daarin een WEB-INF-map.

Uw directorystructuur zou er als volgt uit moeten zien:

Hallo Wereld /
└── webapp
└── WEB-INF

3 mappen, 0 bestanden


Navigeer vervolgens naar de WEB-INF-map en maak een “web.xml”-bestand met de volgende code:

< ?xml versie = '1,0' codering = 'UTF-8' ? >
< web applicatie xmlns = 'http://xmlns.jcp.org/xml/ns/javaee'
xmlns: xsi = 'http://www.w3.org/2001/XMLSchema-instance'
xsi: schemaLocatie = 'http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd'
versie = '4,0' >
< servet >
< servlet-naam > Hallo Wereld servlet-naam >
< servlet-klasse > Hallo WereldServlet servlet-klasse >
servet >
< servlet-mapping >
< servlet-naam > Hallo Wereld servlet-naam >
< URL-patroon >/ Hallo URL-patroon >
servlet-mapping >
web applicatie >


Sla het bestand op en sluit de editor.

Terug in uw terminalvenster maakt u een “HelloWorldServlet.java” aan in de map WEB-INF/classes.

$ mkdir klassen
$ aanraken HalloWorldServlet.java


Voeg de inhoud van de applicatie toe zoals hieronder weergegeven:

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

public class HelloWorldServlet breidt HttpServlet uit {
publieke leegte doGet ( HttpServletRequest-verzoek, HttpServletResponse-antwoord )
gooit ServletException, IOException {
respons.setContentType ( 'tekst/html' ) ;
PrintWriter uit = response.getWriter ( ) ;
uit.println ( '' ) ;
uit.println ( 'Hallo wereldservlet' ) ;
uit.println ( '' ) ;
uit.println ( '

Hallo wereld!

'
) ;
uit.println ( '' ) ;
}
}


Hiermee wordt een eenvoudige Tomcat-servlet ingesteld die 'Hallo wereld' afdrukt.



Definieer het Dockerbestand

De volgende stap voor ons is het definiëren van de Dockerfile om een ​​aangepaste image te bouwen die onze “Hello World” -app bevat.

Maak in de hoofdmap een nieuw bestand met de naam “Dockerfile”:







$ aanraken ~ / Hallo Wereld / Dockerbestand


Bewerk het bestand en voeg de configuratie als volgt toe:

# set Tomcat-basisafbeelding
VAN kater: nieuwste

# Kopieer de Hello World-applicatie naar de Tomcat-webapps-directory
KOPIE. / web applicatie / usr / lokaal / kater / webapps / mijnapp
# Stel poort 8080 bloot voor Tomcat
BLOOTGEVEN 8080


De mapindeling zou als volgt moeten zijn:

Hallo Wereld
├── Dockerbestand
└── webapp
└── WEB-INF
├── lessen
│   └── HalloWorldServlet.java
└── web.xml

4 mappen, 3 bestanden

Bouw het beeld

Vervolgens bouwen we de aangepaste Tomcat-afbeelding zoals weergegeven in de volgende opdracht:

$ havenarbeider gebouwd -T kater-app.


Voer de container uit

Zodra we de afbeelding gereed hebben, kunnen we de container als volgt vanaf de afbeelding uitvoeren met behulp van de opdracht:

$ havenarbeider uitgevoerd -D -P 8080 : 8080 --naam tomcat-container tomcat-app


Dit zou de Tomcat-container moeten bouwen op basis van de tomcat-app-image die we in de vorige stap hebben gemaakt en deze moeten binden aan poort 8080 op de hostmachine.

Toegang tot de applicatie

Open een webbrowser en navigeer naar . Je zou het bericht 'Hallo, wereld!' moeten zien. bericht weergegeven in uw browser.

Conclusie

Gefeliciteerd! U hebt met succes een “Hello World”-applicatie geïmplementeerd in een Dockerized Tomcat-container.