Apache Tomcat on avatud lähtekoodiga veebiserver ja servletikonteiner, mille on välja töötanud Apache Software Foundation (ASF).
Tomcat rakendab Oracle'i Java Servleti ja JavaServer Pages spetsifikatsioone ning pakub Java koodi käivitamiseks puhast Java HTTP veebiserveri keskkonda.
Selles õpetuses õpime, kuidas ühendada Docker ja Tomcat, et juurutada Tomcati 'tere maailm' rakendus, kasutades Tomcati konteinerina.
Nõuded:
Selles õpetuses esitatud juhiste ja koodi edukaks järgimiseks ja kasutamiseks veenduge, et teil on järgmised asjad.
- Teie hostmasinasse installitud Docker Engine
- Installisite oma arvutisse Java JDK, et oma Java koodi testida (valikuline)
- Tekstiredaktor lähtekoodi ja Dockeri konfiguratsioonide redigeerimiseks
Kui etteantud nõuded on täidetud, saame jätkata ja õppida, kuidas Dockeri abil Tomcati rakendust juurutada.
Tõmmake Dockeris Tomcati pilt
Õnneks ei pea me konfigureerima põhipilti, mis sisaldab Tomcati rakenduse käitamiseks kõiki tööriistu. Saame lihtsalt kasutada Tomcati pilti Docker Hubist.
Pildi tõmbamiseks saame käivitada käsu järgmiselt:
$ dokk tõmba kottkass
Looge rakendus Hello World
Järgmine samm on rakenduse 'Tere maailm' loomine. Alustage lähtekoodi salvestamiseks kataloogi loomisega ja navigeerige kataloogi.
$ mkdir Tere, Maailm && cd Tere, Maailm
Looge juurkataloogis veebirakenduse kaust ja looge selle sees kaust WEB-INF.
Teie kataloogi struktuur peaks välja nägema järgmine:
Tere, Maailm /└── veebirakendus
└── WEB-INF
3 kataloogid, 0 failid
Järgmisena navigeerige WEB-INF kataloogi ja looge fail 'web.xml' järgmise koodiga:
< veebirakendus xmlns = 'http://xmlns.jcp.org/xml/ns/javaee'
xmlns: xsi = 'http://www.w3.org/2001/XMLSchema-instance'
xsi: skeemAsukoht = 'http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd'
versioon = '4.0' >
< servlet >
< servleti nimi > Tere, Maailm servleti nimi >
< servlet-klass > HelloWorldServlet servlet-klass >
servlet >
< servlet-mapping >
< servleti nimi > Tere, Maailm servleti nimi >
< URL-i muster >/ Tere URL-i muster >
servlet-mapping >
veebirakendus >
Salvestage fail ja sulgege redaktor.
Tagasi terminali aknas looge WEB-INF/classes kataloogis 'HelloWorldServlet.java'.
$ mkdir klassid$ puudutada HelloWorldServlet.java
Lisage rakenduse sisu järgmiselt:
import javax.servlet.http. * ;
importida java.io. * ;
avalik klass HelloWorldServlet laiendab HttpServleti {
public void doGet ( HttpServletRequest päring, HttpServletResponse'i vastus )
viskab ServletException, IOException {
response.setContentType ( 'text/html' ) ;
PrintWriter out = vastus.getWriter ( ) ;
välja.println ( '' ) ;
välja.println ( '
välja.println ( ' ' ) ;
välja.println ( '
Tere, maailm!
' ) ;välja.println ( '' ) ;
}
}
See seadistab Tomcati põhiservleti, mis prindib 'Tere maailm'.
Defineerige Dockeri fail
Järgmine samm on meie jaoks Dockerfile'i määratlemine, et luua kohandatud pilt, mis sisaldab meie rakendust 'Tere maailm'.
Loo juurkataloogis uus fail nimega 'Dockerfile':
$ puudutada ~ / Tere, Maailm / Dockerfile
Redigeerige faili ja lisage konfiguratsioon järgmiselt:
FROM tomcat:latest
# Kopeerige rakendus Hello World Tomcati veebirakenduste kataloogi
KOPERI . / veebirakendus / usr / kohalik / kõuts / veebirakendused / minu rakendus
# Avaldage Tomcati jaoks port 8080
AVALDA 8080
Teil peaks olema järgmine kataloogi paigutus:
├── Dockerfile
└── veebirakendus
└── WEB-INF
├── klassid
│ └── HelloWorldServlet.java
└── web.xml
4 kataloogid, 3 failid
Ehitage pilt
Järgmisena koostame kohandatud Tomcati pildi, nagu on näidatud järgmises käsus:
$ doki ehitamine -t tomcat-rakendus.
Käivitage konteiner
Kui pilt on valmis, saame konteineri käivitada pildilt, kasutades järgmist käsku:
$ dokijooks -d -lk 8080 : 8080 --nimi tomcat-container tomcat-app
See peaks koostama Tomcati konteineri eelmises etapis loodud tomcati rakenduse kujutisest ja siduma selle hostmasina pordiga 8080.
Juurdepääs rakendusele
Avage veebibrauser ja navigeerige saidile . Peaksite nägema 'Tere, maailm!' teie brauseris kuvatav teade.
Järeldus
Palju õnne! Olete edukalt juurutanud rakenduse „Tere maailm” dockeriseeritud Tomcati konteineris.