Java Spring Boot를 Docker에서 실행하는 방법

KUKJIN LEE's profile picture

KUKJIN LEE1개월 전 작성

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!" 메시지가 나타납니다. 🎉

New Tech Posts