Docker로 배포하기

·2023년 12월 4일
0

Spring Boot

목록 보기
20/21
post-thumbnail

🍀 들어가며

이번 포스팅에서는 Spring Boot + Docker + EC2를 활용하여 기존 만들었던 블로그 프로젝트를 배포해 볼 것이다!


(출처 🐳 CLASS101)

대략적인 과정은 위 사진처럼 진행될 예정이다.


😎 본격적으로 해 보기!

0. WSL2 설치

먼저 나는 윈도우 유저이기 때문에 WSL2를 설치해야 하는데, 그러기 위해서는 윈도우 터미널을 먼저 설치해야 한다. Windows Terminal을 설치한 뒤, 관리자 권한으로 실행한다.

그리고 순서대로 명령어를 입력해 준다.

Linux용 Windows 하위 시스템 옵션 기능 사용

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Virtual Machine 기능 사용

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

그리고 컴퓨터를 재부팅해 준다! 이제 x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지를 다운로드 후 설치해야 한다.

설치가 완료되었다면 다시 Powershell로 돌아가서 아래 명령어를 입력한다.

WSL2를 기본 버전으로 설정

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

이제 Microsoft Store에서 Ubuntu를 설치한다.

다운받고 실행하면 새 리눅스 배포에 대한 사용자 계정 및 암호를 만들어야 한다. 계정 및 비밀번호를 실행해 주고, 패키지 관리자를 최신 버전으로 업데이트해 준다. (시간이 꽤나 많이 걸린다..!)

패키지 관리자 최신 버전으로 업데이트

sudo apt update && sudo apt upgrade

짜잔! 이렇게 하면 윈도우에서도 터미널로 개발을 할 수 있게 된다! 😉


1. Docker Desktop 설치

로컬에 설치

Docker Desktop 사이트에 들어가 윈도우용 도커 데스크탑을 설치해 준다.

EC2에 설치

Ubuntu 터미널을 실행하고 아래 과정을 따른다.

패키징 툴(apt-get) 업데이트

sudo apt update && sudo apt upgrade

Docker 설치에 필요한 필수 패키지 설치

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

Docker의 GPC Key 인증

sudo apt update && sudo apt upgrade

입력 후 OK가 출력되면 완료된 것이다!

Docker Repository 등록

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

apt-get 패키징 툴을 통해 도커 설치

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

도커가 잘 설치되었는지 버전 확인

docker -v

도커 실행, 활성화, 잘 작동되는지 확인

sudo systemctl enable docker
sudo service docker start
service docker status

이렇게 했을 때 방대한 코드가 출력된다면.. 도커가 정상적으로 실행되고 있는 것이다!


2. Spring Boot 프로젝트에 도커 설정

이제 스프링 부트로 향하자. 스프링 부트 프로젝트 루트에 Dockerfile 파일을 생성하고 아래와 같이 작성해 주자.

Dockerfile

FROM amazoncorretto:17
COPY build/libs/*.jar spring-base.jar
ENTRYPOINT ["java", "-jar", "/spring-base.jar"]

3. Docker Image 만들기

powershell에서 해당 명령어를 입력해 도커 이미지를 만든다.

cd /프로젝트경로/프로젝트경로 <- Dockerfile이 있는 경로까지 이동
docker build -t 계정명/프로젝트명 .
docker images

도커 이미지를 만들고 마지막 명령어를 입력하면 생성된 도커 이미지를 확인할 수 있다.


4. Container 실행

생성된 이미지로 컨테이너를 실행해 보자. 포트 번호가 2개인 이유는 Host Port와 Container Port를 연결하기 위함이다.

docker run -d -p 8080:8080 ansoohyeon/blog-project

docker ps 명령어로 실행 중인 컨테이너를 확인할 수 있다.

이제 프로젝트 주소로 접속해 보면 페이지가 정상적으로 배포된 것을 볼 수 있다!


5. Docker Hub에 Push

도커 허브 사이트에서 먼저 회원 가입을 한 뒤 powershell에서 로그인을 진행한다.

docker login

그리고 도커 이미지를 push한다.

docker push ansoohyeon/blog-project

완료한 뒤 도커 허브에 들어가 보면...

내가 방금 푸시한 도커 이미지를 볼 수 있다! (신기😎)


6. EC2에 배포

이제 우분투 터미널로 가서 아래 명령어를 입력해 도커 허브의 이미지를 우분투에 풀한다.

sudo systemctl start docker
sudo docker pull devfoxstar/spring-base

이미지를 풀받았으니 이제 실행해 보자.

sudo docker run -d -p 8080:8080 ansoohyeon/blog-project

그러면 배포 끝!


🙌 마치며

도커를 사용해 본 소감은,
정말 신세계다! 도커를 말로만 들었을 때는 복잡하고 막막한 느낌이었는데, 실제로 차근차근 구현해 보니 굉장히 편리한 것 같다. 이렇게 해 보니 기존 포스팅에서 war 파일을 사용해서 배포했던 것이 얼마나 어렵고 복잡한 일이었는지.... 🙄

profile
풀스택 개발자 기록집 📁

0개의 댓글