Crear imagen Docker

  1. Crear un dockerfile en la raiz del proyecto

Usamos una imagen base de OpenJDK

FROM openjdk:21

Copiamos el archivo JAR de tu aplicación al contenedor

COPY "./target/pokemon-0.0.1-SNAPSHOT.jar" "pokemon.jar"

Exponemos el puerto en el que la aplicación escucha

EXPOSE 8080

Comando para ejecutar la aplicación

ENTRYPOINT ["java", "-jar", "pokemon.jar"]
  1. Construir la aplicacion (.jar)

Si aún no has compilado tu aplicación y no tienes el archivo JAR, puedes hacerlo usando Maven Maven:

mvn clean install

Esto generará un archivo JAR en el directorio target/ (por ejemplo, mi-aplicacion.jar).

También se puede generar desde el IDE mediante la opción "package" en VSC.

  1. Construir la imagen Docker

Una vez tengas el archivo Dockerfile y el archivo JAR listo, puedes construir la imagen de Docker usando el siguiente comando:

docker build -t nombre-de-tu-imagen .
  • -t nombre-de-tu-imagen: Especifica el nombre que quieres dar a tu imagen.

  • El punto (.) al final indica que el contexto de construcción es el directorio actual (donde se encuentra el Dockerfile).

Por ejemplo, si tu archivo JAR se llama mi-aplicacion.jar, el comando sería:

docker build -t mi-aplicacion .
  1. Verificar que la imagen se haya creado correctamente

Una vez que la imagen se haya construido, puedes verificar que se haya creado con el siguiente comando:

docker images

Esto te mostrará todas las imágenes de Docker disponibles, y deberías ver la imagen con el nombre que especificaste (mi-aplicacion en el ejemplo).

  1. Correr el contenedor

Para correr el contenedor a partir de la imagen que creaste, usa el siguiente comando:

docker run -p 8080:8080 mi-aplicacion

Este comando hace lo siguiente:

  • -p 8080:8080: Mapea el puerto 8080 de tu máquina local al puerto 8080 del contenedor, para que puedas acceder a la aplicación desde tu navegador.

  • mi-aplicacion: Es el nombre de la imagen que creaste.

Si todo está correcto, deberías ver tu aplicación ejecutándose en Docker en el puerto 8080.

Verificamos desde el navegador que tenemos acceso:

Última actualización