[java] Spring Boot를 이용한 도커 컨테이너화된 웹 애플리케이션 배포

이번 블로그 포스트에서는 Spring Boot를 사용하여 웹 애플리케이션을 도커 컨테이너에 배포하는 방법에 대해 알아보겠습니다.

목차

  1. 도커 컨테이너란?
  2. Spring Boot로 웹 애플리케이션 개발하기
  3. 도커 이미지 생성하기
  4. 도커 컨테이너 실행하기
  5. 결론

도커 컨테이너란?

도커는 개발자와 시스템 관리자가 애플리케이션을 컨테이너로 만들고 배포하기 위한 오픈 소스 플랫폼입니다. 도커 컨테이너는 격리된 환경에서 애플리케이션을 실행할 수 있게 해주며, 여러 애플리케이션을 동시에 실행하거나 서로 다른 환경에서 실행할 수 있습니다.

도커 컨테이너는 빠르고 가볍고 확장 가능한 특징을 가지고 있어, 애플리케이션을 개발, 배포 및 관리하는 데 매우 유용합니다.

Spring Boot로 웹 애플리케이션 개발하기

먼저 Spring Boot를 사용하여 간단한 웹 애플리케이션을 개발합니다. Spring Boot는 자동 구성을 제공하여 단순화된 개발 경험을 제공하며, 내장된 Tomcat 같은 서버로 애플리케이션을 실행할 수 있습니다.

아래는 간단한 컨트롤러와 REST 엔드포인트가 있는 Spring Boot 애플리케이션의 예입니다:

@RestController
public class HelloWorldController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, world!";
    }

}

도커 이미지 생성하기

웹 애플리케이션이 제대로 동작하므로, 이제 도커 이미지를 생성할 차례입니다. 도커 이미지는 도커 컨테이너의 실행 환경을 정의하는 데 사용됩니다.

먼저, 프로젝트의 루트 디렉토리에 Dockerfile을 생성합니다:

FROM openjdk:8-jdk-alpine
COPY target/myapp.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

위의 Dockerfile은 OpenJDK 8을 기반으로하는 이미지를 생성하고, 빌드된 JAR 파일을 컨테이너의 /app.jar 경로로 복사한 후 이를 실행하는 대로 정의합니다.

이제 도커 이미지를 빌드하기 위해 다음 명령어를 실행합니다:

$ docker build -t myapp .

이 명령어는 현재 디렉토리에서 Dockerfile을 찾아 도커 이미지를 빌드하고, myapp이라는 태그를 지정하여 이미지에 이름을 부여합니다.

도커 컨테이너 실행하기

이제 도커 이미지를 사용하여 실제로 웹 애플리케이션을 실행해 보겠습니다. 다음 명령어를 실행하여 도커 컨테이너를 실행합니다:

$ docker run -p 8080:8080 myapp

위의 명령어는 호스트의 8080 포트를 컨테이너의 8080 포트와 연결하고, myapp이라는 이미지를 기반으로 도커 컨테이너를 실행합니다.

이제 웹 브라우저에서 http://localhost:8080/hello에 접속하여 “Hello, world!” 메시지를 확인할 수 있습니다.

결론

이번 포스트에서는 Spring Boot를 사용하여 웹 애플리케이션을 도커 컨테이너에 배포하는 방법에 대해 알아보았습니다. 도커를 사용하면 애플리케이션을 격리된 환경에서 실행하고, 배포 및 관리하는 데 매우 유용한 기능을 제공합니다. Spring Boot와 도커를 함께 사용하면 애플리케이션의 배포 프로세스를 단순화하고 효율적으로 관리할 수 있습니다.