Apache Tomcat on avoimen lähdekoodin verkkopalvelin ja servlet-säilö, jonka on kehittänyt Apache Software Foundation (ASF).
Tomcat toteuttaa Oraclen Java Servlet- ja JavaServer Pages -määritykset ja tarjoaa puhtaan Java HTTP -verkkopalvelinympäristön Java-koodin suorittamista varten.
Tässä opetusohjelmassa opimme yhdistämään Dockerin ja Tomcatin Tomcatin 'hello world' -sovelluksen käyttöönottamiseksi käyttämällä Tomcatia konttina.
Vaatimukset:
Jotta voit noudattaa ja käyttää tässä opetusohjelmassa annettuja ohjeita ja koodia onnistuneesti, varmista, että sinulla on seuraavat asiat:
- Docker Engine asennettu isäntäkoneellesi
- Asennettu Java JDK koneellesi Java-koodin testaamiseksi (valinnainen)
- Tekstieditori lähdekoodin ja Docker-kokoonpanojen muokkaamiseen
Kun annetut vaatimukset täyttyvät, voimme jatkaa ja oppia ottamaan Tomcat-sovelluksen käyttöön Dockerin avulla.
Vedä Tomcat-kuva Dockerissa
Onneksi meidän ei tarvitse määrittää peruskuvaa, joka sisältää kaikki työkalut Tomcat-sovelluksen suorittamiseen. Voimme yksinkertaisesti käyttää Tomcat-kuvaa Docker Hubista.
Voit vetää kuvan suorittamalla komennon seuraavasti:
$ telakka vetää tomca
Luo Hello World -sovellus
Seuraava vaihe on 'Hello World' -sovelluksen luominen. Aloita luomalla hakemisto lähdekoodin tallentamista varten ja siirry hakemistoon.
$ mkdir Hei maailma && CD Hei maailma
Luo juurihakemistoon webapp-kansio ja luo siihen WEB-INF-kansio.
Hakemistosi rakenteen pitäisi näyttää tältä:
Hei maailma /└── verkkosovellus
└── WEB-INF
3 hakemistoja, 0 tiedostot
Siirry seuraavaksi WEB-INF-hakemistoon ja luo 'web.xml' -tiedosto seuraavalla koodilla:
< web-sovellus 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'
versio = '4.0' >
< servlet >
< servlet-nimi > Hei maailma servlet-nimi >
< servlet-luokka > HelloWorldServlet servlet-luokka >
servlet >
< servlet-kartoitus >
< servlet-nimi > Hei maailma servlet-nimi >
< url-malli >/ Hei url-malli >
servlet-kartoitus >
web-sovellus >
Tallenna tiedosto ja sulje editori.
Takaisin pääteikkunaan luo 'HelloWorldServlet.java' WEB-INF/classes-hakemistoon.
$ mkdir luokat$ kosketus HelloWorldServlet.java
Lisää sovelluksen sisältö seuraavan kuvan mukaisesti:
tuo javax.servlet.http. * ;
tuo java.io. * ;
julkinen luokka HelloWorldServlet laajentaa HttpServletiä {
julkinen void doGet ( HttpServletRequest-pyyntö, HttpServletResponse-vastaus )
heittää ServletExceptionin, IOExceptionin {
vastaus.setContentType ( 'teksti/html' ) ;
PrintWriter out = vastaus.getWriter ( ) ;
out.println ( '' ) ;
out.println ( '
out.println ( ' ' ) ;
out.println ( '
Hei, maailma!
' ) ;out.println ( '' ) ;
}
}
Tämä määrittää Tomcat-perusservletin, joka tulostaa 'Hei maailma'.
Määritä Docker-tiedosto
Seuraava askel meille on määrittää Dockerfile luodaksemme mukautetun kuvan, joka sisältää 'Hello World' -sovelluksemme.
Luo juurihakemistoon uusi tiedosto nimeltä 'Dockerfile':
$ kosketus ~ / Hei maailma / Docker-tiedosto
Muokkaa tiedostoa ja lisää kokoonpano seuraavasti:
FROM tomcat: uusin
# Kopioi Hello World -sovellus Tomcatin webapps-hakemistoon
KOPIO . / verkkosovellus / usr / paikallinen / kollikissa / verkkosovellukset / myapp
# Näytä portti 8080 Tomcatille
PALJISTA 8080
Hakemiston asettelun pitäisi olla seuraava:
├── Dockerfile
└── verkkosovellus
└── WEB-INF
├── luokat
│ └── HelloWorldServlet.java
└── web.xml
4 hakemistoja, 3 tiedostot
Rakenna kuva
Seuraavaksi rakennamme mukautetun Tomcat-kuvan seuraavan komennon mukaisesti:
$ telakkarakennelma -t tomcat-sovellus.
Suorita säilö
Kun kuva on valmis, voimme ajaa säilön kuvasta komennolla seuraavasti:
$ telakkajuoksu -d -s 8080 : 8080 --nimi tomcat-container tomcat-app
Tämän pitäisi rakentaa Tomcat-säilö edellisessä vaiheessa luomastamme tomcat-sovelluskuvasta ja sitoa se isäntäkoneen porttiin 8080.
Käytä sovellusta
Avaa verkkoselain ja siirry kohtaan . Sinun pitäisi nähdä 'Hei, maailma!' viesti näkyy selaimessasi.
Johtopäätös
Onnittelut! Otit onnistuneesti käyttöön Hello World -sovelluksen Dockerized Tomcat -säiliössä.