본문 바로가기
프로젝트/RanDrive

Docker와 EC2 사용한 배포

by HWK 2023. 10. 8.

먼저 idle에서 세팅을 아래와 같은 형식으로 해준다.
EC2 상에서 다시 Docker를 적용시킬 것이라 jar 파일 이름만 맞춰준다.

#Docker File

#jdk11 Image Start
FROM openjdk:17-jdk
#LABEL authors="Administrator"

#인자 정리 - jar
ARG JAR_FILE=build/libs/*.jar
# jar File Copy  / 파일 위치  파일명
COPY ${JAR_FILE} awadocker-0.0.1-SNAPSHOT.jar

#생략가능 - 8080 port 사용한다는 의미
EXPOSE 8080

#docker run시 실행 필수 명령어 , 처음에 있는 "top" 등의 파라미터를 지워야함! , 왜인지 모름
ENTRYPOINT ["java", "-jar", "/awsdocker-0.0.1-SNAPSHOT.jar"]

 

다음은 dockerfile이 있는 폴더에 들어간 후 그 폴더의 탐색기를 열어준다.

그 후 다음과 같은 과정을 따른다.

1. 도커 로그인

docker login -u [Docker Username]
# docker login -u rkdgusdnr99

2. 도커 이미지 생성, 꼭 Docker username을 적어줄 것!, 또한 이미지면 다음에 ' .'를 꼭 적어주자.

docker build -t [Docker Username]/[이미지명] .

3. 이후 docker images를 통해 잘 생성 되었는지 확인 후 Docker Hub Push 해줄것이다. 시간이 좀 걸린다.

docker push [Docker Username]/[이미지명]

위 과정을 마치면 Docker Desktop의 Hub에 다음과 같이 이미지가 보일 것이다.

 

다음은 아래의 링크를 참고해서 EC2 서버를 하나 개설한다. Git Bash 다 작성해도 닫지 말고 열어놓자!

Filzila전까지만 수행해주고, 80, 8080포트 열어주기를 참고해서 해당 포트를 열어준다.

https://teamsparta.notion.site/AWS-EC2-RDS-d37107b67d474e51aae4896d3cb90af9

 

열어놓은 Git Bash에서 다음과 같은 과정을 거친다.

해당 Ec2 서버에 Docker을 설치하는 과정이다.

#관리자 권한 부여 - docker는 항상 관리자 권한이 요구됨
sudo su -

# 업데이트
sudo apt-get update -y

# HTTP 패키지 설치
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common -y

# gpg 키 및 저장소 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository --yes \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

# Docker 엔진 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io -y

#설치 확인
docker -v

 

이후 EC2에서 Docker을 배포한다.

다음과 같은 과정을 따르면 된다.

docker login -u [Docker Username]
#도커에 로그인

sudo docker run -d -p [로컬 포트]:[도커 포트] [Docker Username]/[이미지명]
#$sudo docker run -d -p 8080:8080 rkdgusdnr99/awsdocker

이후 열린 주소를 확인해보면 배포를 확인할 수 있다.

만일 시간이 지나서 서버가 죽으면 EC2 인스턴스를 중지 후 재시작해보자
그 후 위처럼 Docker만 다시 연결 시켜주면 된다.

'프로젝트 > RanDrive' 카테고리의 다른 글

팀 Repo에 Docker및 CI/CD 구축  (1) 2023.10.11
Github Actions를 통한 CI/CD 구축(Docker + EC2)  (0) 2023.10.10
Docker 적용  (1) 2023.10.07
SA 설계 마치기  (0) 2023.10.06
주제 정하기  (1) 2023.10.05