Combina Docker y Tomcat

Combina Docker Y Tomcat



Apache Tomcat es un servidor web de código abierto y un contenedor de servlets desarrollado por Apache Software Foundation (ASF).

Tomcat implementa las especificaciones Java Servlet y JavaServer Pages de Oracle y proporciona un entorno de servidor web HTTP Java puro para que se ejecute el código Java.







En este tutorial, aprenderemos cómo combinar Docker y Tomcat para implementar una aplicación Tomcat 'hola mundo' utilizando Tomcat como contenedor.



Requisitos:

Para seguir y utilizar con éxito las instrucciones y el código proporcionado en este tutorial, asegúrese de tener lo siguiente:



    1. Docker Engine instalado en su máquina host
    2. Instalé Java JDK en su máquina para probar su código Java (opcional)
    3. Un editor de texto para editar el código fuente y las configuraciones de Docker.

Una vez cumplidos los requisitos indicados, podemos continuar y aprender cómo implementar una aplicación Tomcat usando Docker.





Extraiga la imagen de Tomcat en Docker

Afortunadamente, no necesitamos configurar una imagen base que contenga todas las herramientas para ejecutar una aplicación Tomcat. Simplemente podemos usar la imagen de Tomcat desde Docker Hub.

Para extraer la imagen, podemos ejecutar el comando de la siguiente manera:



$ ventana acoplable tirar tomcat

 

Crear una aplicación Hola Mundo

El siguiente paso es crear la aplicación “Hello World”. Comience creando un directorio para almacenar su código fuente y navegue hasta el directorio.

$ mkdir Hola Mundo && cd Hola Mundo

 
Dentro del directorio raíz, cree una carpeta de aplicación web y cree una carpeta WEB-INF dentro de ella.

La estructura de su directorio debería verse así:

Hola Mundo /                                                                                                                                          
└── aplicación web
└── WEB-INF
                                                                                                                                                     
3 directorios, 0 archivos

 
A continuación, navegue hasta el directorio WEB-INF y cree un archivo 'web.xml' con el siguiente código:

< ?xml versión = '1.0' codificación = 'UTF-8' ? >
< Aplicación Web xmlns = 'http://xmlns.jcp.org/xml/ns/javaee'
xmlns: xsi = 'http://www.w3.org/2001/XMLSchema-instance'
xsi: esquemaUbicación = 'http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd'
          versión = '4.0' >
    < servlet >
        < nombre-servlet > Hola Mundo nombre-servlet >
        < clase de servlet > HolaMundoServlet clase de servlet >
    servlet >
    < mapeo de servlets >
        < nombre-servlet > Hola Mundo nombre-servlet >
        < patrón de URL >/ Hola patrón de URL >
    mapeo de servlets >
Aplicación Web >

 
Guarde el archivo y cierre el editor.

De vuelta en la ventana de su terminal, cree un “HelloWorldServlet.java” dentro del directorio WEB-INF/classes.

$ mkdir clases
$ tocar HelloWorldServlet.java

 
Agregue el contenido de la aplicación como se muestra a continuación:

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

la clase pública HelloWorldServlet extiende HttpServlet {
vacío público doGet ( Solicitud HttpServletRequest, respuesta HttpServletResponse )
lanza ServletException, IOException {
respuesta.setContentType ( 'texto/html' ) ;
PrintWriter fuera = respuesta.getWriter ( ) ;
fuera.println ( '' ) ;
fuera.println ( 'Hola mundo servlet' ) ;
fuera.println ( '' ) ;
fuera.println ( '

¡Hola mundo!

'
) ;
fuera.println ( '' ) ;
    }
}

 
Esto configura un servlet Tomcat básico que imprime 'Hola mundo'.



Definir el archivo Docker

El siguiente paso para nosotros es definir el Dockerfile para crear una imagen personalizada que incluya nuestra aplicación 'Hello World'.

Dentro del directorio raíz, cree un nuevo archivo llamado 'Dockerfile':







$ tocar ~ / Hola Mundo / archivo acoplable

 
Edite el archivo y agregue la configuración de la siguiente manera:

# establecer la imagen base de Tomcat
DE Tomcat: último

# Copie la aplicación Hello World al directorio de aplicaciones web de Tomcat
COPIAR . / Aplicación Web / usr / local / gato / aplicaciones web / miaplicación
# Exponer el puerto 8080 para Tomcat
EXPONER 8080

 
Debería tener el diseño del directorio de la siguiente manera:

Hola Mundo
├── Archivo Docker
└── aplicación web
└── WEB-INF
├── clases
        │   └── HelloWorldServlet.java                                                                                                                
└──web.xml
                                                                                                                                                     
4 directorios, 3 archivos

 

Construye la imagen

A continuación, creamos la imagen de Tomcat personalizada como se muestra en el siguiente comando:

$ construcción de ventana acoplable -t aplicación tomcat.

 

Ejecute el contenedor

Una vez que tengamos la imagen lista, podemos ejecutar el contenedor desde la imagen usando el comando de la siguiente manera:

$ ejecución de la ventana acoplable -d -pag 8080 : 8080 --nombre contenedor-tomcat aplicación-tomcat

 
Esto debería construir el contenedor Tomcat a partir de la imagen de la aplicación Tomcat que creamos en el paso anterior y vincularlo al puerto 8080 en la máquina host.

Accede a la aplicación

Abra un navegador web y navegue hasta . Deberías ver el mensaje '¡Hola, mundo!' mensaje mostrado en su navegador.

Conclusión

¡Felicidades! Implementó con éxito una aplicación 'Hello World' en un contenedor Tomcat Dockerizado.