Skip to content

Instantly share code, notes, and snippets.

@pazteddy
Created October 2, 2025 04:36
Show Gist options
  • Select an option

  • Save pazteddy/d99dfb5dc83d5b002dafb6e5071136a8 to your computer and use it in GitHub Desktop.

Select an option

Save pazteddy/d99dfb5dc83d5b002dafb6e5071136a8 to your computer and use it in GitHub Desktop.
Crear una imagen Docker para una aplicación Spring Boot

🚀 Guía: Crear una imagen Docker para una aplicación Spring Boot

1. Requisitos previos

Debes tener instalados: - Java 21 (OpenJDK 21 recomendado).


2. Crear una aplicación Spring Boot (opcional)

Ejemplo de aplicación mínima:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

Ejecutar en local:

./mvnw spring-boot:run

3. Empaquetar la aplicación en un JAR

Con Maven:

./mvnw clean package

Esto genera un archivo .jar en target/ (ej: demo-0.0.1-SNAPSHOT.jar).


4. Crear el Dockerfile

Archivo Dockerfile en la raíz del proyecto:

# Usar OpenJDK 21 como base
FROM openjdk:21-jdk-slim

# Directorio de trabajo en el contenedor
WORKDIR /app

# Copiar el JAR generado al contenedor
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar

# Exponer puerto 8080 (Spring Boot default)
EXPOSE 8080

# Ejecutar la aplicación
ENTRYPOINT ["java", "-jar", "app.jar"]

5. Construir la imagen Docker

docker build -t spring-boot-app .
  • -t spring-boot-app: nombre de la imagen.
  • .: indica que use el Dockerfile en el directorio actual.

6. Ejecutar el contenedor

docker run -p 8080:8080 spring-boot-app
  • -p 8080:8080: mapea el puerto local 8080 al del contenedor.
  • Accede en navegador: http://localhost:8080.

7. (Opcional) Publicar la imagen en Docker Hub

  1. Iniciar sesión:

    docker login
  2. Etiquetar imagen:

    docker tag spring-boot-app yourdockerhubusername/spring-boot-app:latest
  3. Subir:

    docker push yourdockerhubusername/spring-boot-app:latest

8. (Opcional) Desplegar en Cloud o Kubernetes

  • Kubernetes: crear un Deployment/Service.\
  • Cloud providers:
    • AWS ECS/Fargate\
    • Google GKE\
    • Azure AKS

✅ Conclusión

Docker te permite: - Empaquetar tu aplicación Spring Boot en un contenedor portable.

  • Garantizar consistencia entre entornos (dev, staging, prod).
  • Facilitar despliegue en servidores locales o en la nube.

Pasos clave: 1. Generar JAR con Maven. 2. Escribir Dockerfile. 3. Construir imagen con docker build. 4. Ejecutar contenedor con docker run. 5. (Opcional) Subir a Docker Hub y desplegar en cloud/Kubernetes.


👉 Aquí tienes la documentación oficial de Docker para Java como complemento.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment