Debes tener instalados: - Java 21 (OpenJDK 21 recomendado).
- Spring Boot App (puedes generarla desde Spring Initializr).
- Maven (para compilar y empaquetar la app).
- Docker (descarga oficial).
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:runCon Maven:
./mvnw clean packageEsto genera un archivo .jar en target/ (ej:
demo-0.0.1-SNAPSHOT.jar).
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"]docker build -t spring-boot-app .-t spring-boot-app: nombre de la imagen..: indica que use elDockerfileen el directorio actual.
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.
-
Iniciar sesión:
docker login
-
Etiquetar imagen:
docker tag spring-boot-app yourdockerhubusername/spring-boot-app:latest
-
Subir:
docker push yourdockerhubusername/spring-boot-app:latest
- Kubernetes: crear un Deployment/Service.\
- Cloud providers:
- AWS ECS/Fargate\
- Google GKE\
- Azure AKS
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.