Crear imagen Docker
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"]

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.

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 .

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).

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