본문 바로가기

프로젝트

[ Docker ] Docker hub를 사용해 Jar 파일 EC2에서 실행해보기

이유

친구와 작은 사이드 프로젝트를 하면서 서버에 자바를 띄우는 방식에 대해 이야기를 했다. 이번에는 Docker hub에 Jar 이미지를 올려 EC2에서 실행하는 방식으로 해보는 것이 어떠하냐는 친구의 제안이 있었다. image 파일을 서버에서 받아서 실행만 하면 되기에 EC2에서 처리해야 할 일이 적었고 Docker를 공부할 수 있는 기회가 되는 것 같아 진행해 보기로 했다. 

Java Project를 Docker를 사용해 EC2에 올리는 방법

1. Jar 파일을 build를 통해 생성

 

./gradlew build

 

2. Docker 파일 생성

 

# Dockerfile
FROM openjdk:17-jdk-alpine
ARG JAR_FILE= ${JAR 폴더 경로}/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

 

3. Shell에서 Docker 로그인

 

docker login

 

4. Docker 사이트(https://hub.docker.com/)에서 Repository 생성

 

5. Docker image로 빌드 하기

 

# Docker build
docker build . -t ${저장소 이름} --platform linux/amd64

 

6. Docker Repository에 올리기

 

# Docker push
docker push ${저장소 이름}

 

7. EC2에서 Docker Image 받아 실행하기

 

# Docker에서 최신 버전 받기
docker pull ${저장소 이름}

# Docker 받은 image 실행시키기
# 서버 포트 80이랑 Docker 내부 8080(톰캣) 포트 포트포워딩 해주는 것은 -p 옵션
docker run -p 80:8080 ${저장소 이름}