본문 바로가기
Docker

Docker로 배포해보기

by sangyunpark99 2024. 8. 28.

🔎 Docker를 사용하여 배포하는 흐름

1. dockerfile을 빌드해서 Docker 이미지를 만든다.

2. 만든 Docker 이미지를 Docker Hub에 push 해준다.

3. AWS EC2 instance에 접속해서 이전에 push 해주었던 docker image를 Docker hub에서 pull을 받아준다.

4. pull 받은 Docker image를 instance에서 실행시킨다.

 

🔎 한단계씩 실행해보기

공식문서를 참고해서 한 단계씩 실행해보겠다.

https://spring.io/guides/gs/spring-boot-docker

 

Getting Started | Spring Boot with Docker

Congratulations! You have created a Docker container for a Spring Boot application! By default, Spring Boot applications run on port 8080 inside the container, and we mapped that to the same port on the host by using -p on the command line.

spring.io

 

dockerfile을 빌드해서 Docker 이미지를 만든 후, Docker 이미지 Docker Hub에 push 해주기

 

DockerFile 만들기

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

 

DockerFile을 기반으로 Docker image 빌드하기

docker build 명령어

 

 

Docker image 로컬 환경에서 실행해보기

CLI에서 .jar 파일을 직접 실행시키는 구조에서 Docker image 내에 존재하는 .jar 파일을 실행시키는 구조의 차이점이 존재한다.

 

 

✅ 잘 실행되는지 확인해보기

 

Docker image Docker hub에 업로드하기

docker push 명령어

 

Docker image가 잘 업로드 되었는지 확인하기

 

 AWS EC2 instance에서 Docker 이미지 가져오기

docker pull 명령어

 

Docker 이미지를 pull해오고, 실행하는 과정에서 오류가 발생했다. 아래는 오류의 발생과 해결 과정이다.

https://sangyunpark99.tistory.com/20

 

AWS(EC2) Docker 실행시 발생하는 exec format error

😤 에러 상황 맥북에서 Docker image를 빌드 한후, Docker Hub에 Push 해준뒤, AWS EC2에서 배포를 위해 Docker Hub에서 Push 해준 이미지를 Pull 받은 후, image를 실행하기 위해 docker run 명령어를 사용하자 발생

sangyunpark99.tistory.com

 

 

AWS EC2 instance에서 Docker 실행하기

docker run 명령어

문제 없이 실행이 잘 되었다.

 

😎 직접 접속해보기

Artillery 간단한 Stress 테스트 해보기

config:
  target: http://[AWS EC2 주소]
  phases:
    - duration: 30
      arrivalRate: 1
      name: warm up
scenarios:
  - flow:
      - get:
          url: "/hash/123"