이번 블로그 포스트에서는 Spring Boot를 사용하여 웹 애플리케이션을 도커 컨테이너에 배포하는 방법에 대해 알아보겠습니다.
목차
도커 컨테이너란?
도커는 개발자와 시스템 관리자가 애플리케이션을 컨테이너로 만들고 배포하기 위한 오픈 소스 플랫폼입니다. 도커 컨테이너는 격리된 환경에서 애플리케이션을 실행할 수 있게 해주며, 여러 애플리케이션을 동시에 실행하거나 서로 다른 환경에서 실행할 수 있습니다.
도커 컨테이너는 빠르고 가볍고 확장 가능한 특징을 가지고 있어, 애플리케이션을 개발, 배포 및 관리하는 데 매우 유용합니다.
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와 도커를 함께 사용하면 애플리케이션의 배포 프로세스를 단순화하고 효율적으로 관리할 수 있습니다.