Combina Docker e Tomcat

Combina Docker E Tomcat



Apache Tomcat è un server Web open source e un contenitore servlet sviluppato da Apache Software Foundation (ASF).

Tomcat implementa le specifiche Java Servlet e JavaServer Pages di Oracle e fornisce un ambiente server Web Java HTTP puro in cui eseguire il codice Java.







In questo tutorial impareremo come combinare Docker e Tomcat per distribuire un'applicazione Tomcat 'ciao mondo' utilizzando Tomcat come contenitore.



Requisiti:

Per seguire e utilizzare correttamente le istruzioni e il codice forniti in questo tutorial, assicurati di disporre di quanto segue:



    1. Installato Docker Engine sul tuo computer host
    2. Java JDK installato sul tuo computer per testare il tuo codice Java (opzionale)
    3. Un editor di testo per modificare il codice sorgente e le configurazioni Docker

Una volta soddisfatti i requisiti indicati, possiamo procedere e imparare come distribuire un'app Tomcat utilizzando Docker.





Estrai l'immagine Tomcat in Docker

Fortunatamente, non è necessario configurare un'immagine di base che contenga tutti gli strumenti per eseguire un'applicazione Tomcat. Possiamo semplicemente utilizzare l'immagine Tomcat dal Docker Hub.

Per estrarre l'immagine, possiamo eseguire il comando come segue:



$ la finestra mobile tira Tomcat


Crea un'applicazione Hello World

Il passaggio successivo è creare l'applicazione 'Hello World'. Inizia creando una directory in cui archiviare il codice sorgente e naviga nella directory.

$ mkdir Ciao mondo && CD Ciao mondo


All'interno della directory root, crea una cartella webapp e crea una cartella WEB-INF al suo interno.

La struttura della tua directory dovrebbe assomigliare a questa:

Ciao mondo /
└── webapp
└── WEB-INF

3 directory, 0 File


Successivamente, naviga nella directory WEB-INF e crea un file “web.xml” con il seguente codice:

< ?xml versione = '1.0' codifica = 'UTF-8' ? >
< app web 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'
versione = '4.0' >
< servlet >
< nome-servlet > Ciao mondo nome-servlet >
< classe servlet > HelloWorldServlet classe servlet >
servlet >
< mappatura servlet >
< nome-servlet > Ciao mondo nome-servlet >
< modello URL >/ Ciao modello URL >
mappatura servlet >
app web >


Salvare il file e chiudere l'editor.

Tornando alla finestra del terminale, crea un 'HelloWorldServlet.java' nella directory WEB-INF/classes.

$ mkdir classi
$ tocco HelloWorldServlet.java


Aggiungi il contenuto dell'applicazione come mostrato di seguito:

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

la classe pubblica HelloWorldServlet estende HttpServlet {
public void doGet ( Richiesta HttpServletRequest, risposta HttpServletResponse )
lancia ServletException, IOException {
risposta.setContentType ( 'testo/html' ) ;
PrintWriter out = risposta.getWriter ( ) ;
out.println ( '' ) ;
out.println ( 'Hello World Servlet' ) ;
out.println ( '' ) ;
out.println ( '

Ciao mondo!

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


Questo imposta un servlet Tomcat di base che stampa 'Hello world'.



Definire il Dockerfile

Il prossimo passo per noi è definire il Dockerfile per creare un'immagine personalizzata che includa la nostra app 'Hello World'.

All'interno della directory root, crea un nuovo file chiamato “Dockerfile”:







$ tocco ~ / Ciao mondo / Dockerfile


Modifica il file e aggiungi la configurazione come segue:

# imposta l'immagine di base di Tomcat
DA Tomcat: ultime

# Copia l'applicazione Hello World nella directory webapps di Tomcat
COPIA . / webapp / usr / Locale / gatto / webapps / myapp
# Espone la porta 8080 per Tomcat
ESPORRE 8080


Dovresti avere il layout della directory come segue:

Ciao mondo
├──Dockerfile
└── webapp
└── WEB-INF
├── lezioni
│   └── HelloWorldServlet.java
└── web.xml

4 directory, 3 File

Costruisci l'immagine

Successivamente, creiamo l'immagine Tomcat personalizzata come mostrato nel comando seguente:

$ compilazione della finestra mobile -T Tomcat-app .


Esegui il contenitore

Una volta pronta l'immagine, possiamo eseguire il contenitore dall'immagine utilizzando il comando come segue:

$ esecuzione della finestra mobile -D -P 8080 : 8080 --nome contenitore-tomcat tomcat-app


Questo dovrebbe creare il contenitore Tomcat dall'immagine tomcat-app che abbiamo creato nel passaggio precedente e associarlo alla porta 8080 sul computer host.

Accedi all'applicazione

Aprire un browser Web e accedere a . Dovresti vedere il messaggio 'Hello, World!' messaggio visualizzato nel tuo browser.

Conclusione

Congratulazioni! Hai distribuito con successo un'applicazione 'Hello World' in un contenitore Tomcat dockerizzato.