navis

Docker를 이용한 Spring Boot 애플리케이션 배포 본문

docker

Docker를 이용한 Spring Boot 애플리케이션 배포

menstua 2024. 10. 24. 16:42
728x90

 

이번 포스트에서는 Docker를 이용해 Spring Boot 애플리케이션을 배포하는 방법을 다룹니다. AWS EC2 서버에 Docker 이미지를 배포하고 실행하는 과정을 단계별로 설명하겠습니다.

 

개발환경

  • OS: Ubuntu 22 (AWS EC2)
  • Docker: Version 27.3.1, Build ce12230
  • Java: OpenJDK 17.0.12

목차

  1. Docker 파일 작성
  2. Docker 이미지 생성
  3. Docker 이미지 실행
  4. Docker Hub에 이미지 푸시
  5. AWS EC2에서 Docker 설정 및 실행
  6. 결론

1. Docker 파일 작성

먼저, Spring Boot 애플리케이션을 Docker로 배포하기 위해 Dockerfile을 작성합니다.

# Step 1: Java 17 JDK 이미지 사용
FROM openjdk:17-jdk-alpine

# Step 2: 작업 디렉토리 설정
WORKDIR /app

# Step 3: 빌드된 JAR 파일 복사
COPY ./build/libs/auth-0.0.1-SNAPSHOT.jar /app/portfolio.jar

# Step 4: 포트 설정
EXPOSE 8001

# Step 5: JAR 파일 실행 명령어 설정
ENTRYPOINT ["java", "-jar", "/app/portfolio.jar"]

2. Docker 이미지 생성

작성한 Dockerfile을 바탕으로 Docker 이미지를 생성합니다.

docker build -t portfolio:latest .

3. Docker 이미지 실행

이미지를 실행하여 컨테이너를 생성합니다.

docker run -d -p 8001:8001 portfolio:latest

이 명령어는 Docker 컨테이너를 백그라운드에서 실행하며, 로컬 포트 8001을 컨테이너의 8001 포트에 매핑합니다.


4. Docker Hub에 이미지 푸시

Docker Hub에 이미지를 푸시하려면 먼저 로그인을 해야 합니다.

docker login
docker tag portfolio:latest junuyang/portfolio:latest # 이미지 태그설정
docker push junuyang/portfolio:latest # 이미지 푸시

5. AWS EC2에서 Docker 설정 및 실행

AWS EC2에 Docker를 설치하고 이미지를 실행하는 단계입니다.

 

1. 패키지 업데이트 및 필수 패키지 설치

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

 

2. Docker GPG 키 추가

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

 

3. Docker 저장소 추가

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

4. Docker 설치

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

 

5. Docker 서비스 시작 및 부팅 시 자동 시작 설정

sudo systemctl start docker
sudo systemctl enable docker

 

6. Docker 로그인

Docker Hub에 로그인합니다.

docker login

 

 

7. 사용자 권한 설정

현재 사용자를 Docker 그룹에 추가한 후 로그아웃하고 다시 로그인합니다.

sudo usermod -aG docker $USER
newgrp docker

 

 

8. Docker 이미지 다운로드 및 실행

AWS EC2에서 Docker 이미지를 다운로드합니다.

docker pull junuyang/portfolio:latest

 

9. 컨테이너를 실행합니다.

docker run -d -p 8001:8001 --name portfolio junuyang/portfolio:latest

6. 결론

이 글에서는 Docker를 사용하여 Spring Boot 애플리케이션을 AWS EC2에 배포하는 방법을 다뤘습니다. Dockerfile을 작성하고, 이미지를 생성한 후 EC2에서 Docker 환경을 설정하여 애플리케이션을 실행하는 과정을 단계별로 설명했습니다. 이를 통해 AWS EC2에서 효율적으로 Spring Boot 애플리케이션을 컨테이너화하고 관리할 수 있습니다. Docker Hub를 통해 이미지를 공유하고, 손쉽게 컨테이너를 배포할 수 있어 개발 및 운영에 있어 높은 유연성과 확장성을 제공합니다.