Java Spring Boot를 Docker에서 실행하는 방법
![KUKJIN LEE's profile picture](/_next/image?url=%2Fassets%2Fdeveloper%2Fkukjin.png&w=48&q=75)
KUKJIN LEE • 4시간 전 작성
Spring Boot 애플리케이션을 Docker에서 실행하기
🔹 1단계: Spring Boot 프로젝트 생성
우선, 간단한 Spring Boot 애플리케이션을 만듭니다.
Spring Initializr (https://start.spring.io/) 를 이용해서 다음 설정으로 프로젝트를 생성하세요.
📌 Spring Boot 프로젝트 기본 설정
-
Language: Java
-
Spring Boot: (버전)
-
Dependencies: Spring Web
🔹 2단계: 간단한 REST API 작성
src/main/java/com/example/demo/DemoApplication.java
를 다음과 같이 수정합니다.
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class DemoApplication {
@GetMapping("/hello")
public String hello() {
return "Hello from Dockerized Spring Boot!";
}
}
✅ 이제 http://localhost:8080/api/hello
에 접속하면 메시지를 확인할 수 있습니다.
🔹 3단계: Dockerfile 작성
이제 Spring Boot 애플리케이션을 Docker에서 실행하기 위해 Dockerfile
을 만듭니다.
지금부터가 제일 중요합니다. 위에는 본인 Java Spring Boot Project로 진행해도 문제 없습니다.
프로젝트 루트 디렉터리에 Dockerfile
파일을 추가하고 아래 내용을 작성하세요.
# 1. OpenJDK 기반 이미지 사용
FROM openjdk:17-jdk-slim
# 2. 작업 디렉토리 설정
WORKDIR /app
# 3. JAR 파일을 컨테이너로 복사
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar
# 4. 애플리케이션 실행
CMD ["java", "-jar", "app.jar"]
(해당은 docker-compose가 아니기 때문에, 가장 기본적인 docker file로 진행됩니다.)
✅ 이 Dockerfile은 OpenJDK 17 환경에서 Spring Boot 애플리케이션을 실행하는 역할을 합니다.
🔹 4단계: 애플리케이션 빌드 및 Docker 이미지 생성
먼저 Spring Boot 애플리케이션을 빌드하여 .jar
파일을 생성합니다.
./mvnw clean package
빌드가 완료되면 target/
폴더에 demo-0.0.1-SNAPSHOT.jar
파일이 생성됩니다.
이제 Docker 이미지를 빌드합니다.
docker build -t my-spring-app .
✅ docker images
명령어로 빌드된 이미지를 확인할 수 있습니다.
🔹 5단계: 컨테이너 실행 및 확인
이제 빌드한 이미지를 기반으로 컨테이너를 실행해봅시다.
docker run -p 8080:8080 my-spring-app
✅ 브라우저에서 http://localhost:8080/api/hello
에 접속하면 "Hello from Dockerized Spring Boot!" 메시지가 나타납니다. 🎉