참고

CI(GitHub Actions) + CD(Docker)로 프로젝트 배포하기

EC2 스프링 부트 서버에 도메인 연결 및 HTTPS 적용하기

Docker Compose - 애플리케이션, MySQL 컨테이너를 EC2에 올리기

CSRF (Cross-Site Request Forgery - 사이트간 요청 위조)

S3 (Simple Storage Service)

도커 개념

질문

image.png

Docker

Github Action + Docker + Docker Compose + AWS EC2

Docker란 무엇인가?

Docker는 개발자가 애플리케이션을 컨테이너라는 격리된 환경에서 개발하고 배포할 수 있도록 해주는 오픈 소스 플랫폼이다.

Docker 컨테이너는 애플리케이션과 그 애플리케이션을 실행하는 데 필요한 모든 종속성과 라이브러리를 포함하고, 이를 어떤 환경에서도 동일하게 실행할 수 있게 해준다.

일상생활에서 ‘컨테이너’는 어떤 물건을 안전하게 다른 장소로 운반하기 위해 사용된다. 이 컨테이너는 내용물이 무엇이든 간에 동일한 형태와 크기를 가지므로, 세계 어디서나 쉽게 취급할 수 있다. 바로, 이 컨테이너를 다루는 것이 Docker이다.

그리고 컨테이너가 운반하는 어떤 물건이 바로, 이미지이다. 이미지는 애플리케이션과 그 실행 환경을 포함하는 불변의 파일이다. 이미지는 컨테이너를 생성하는 데 사용되고, 주로 Dockerfile이라는 스크립트를 통해 정의되고 빌드된다.

Docker Hub는 컨테이너들의 창고라고 할 수있다. Docker Hub에는 애플리케이션을 실행하는 데 필요한 컨테이너 이미지들이 저장된다. 창고에서 물건을 다른 사람들과 공유하듯이, Docker Hub를 통해 다른 사람들과 컨테이너 이미지를 공유할 수 있다. 즉, Docker Hub는 Docker 이미지를 저장하고 공유하기 위한 클라우드 기반의 서비스이다.

전체 동작 과정

image.png