본문 바로가기
DevOps

Docker

by 규난 2022. 10. 10.
728x90

 

Docker

Docker란 가상 머신처럼 독립된 실행 환경을 만들어주고 어플리케이션을 구동하는데 필요한 모든 종속성을 패키징 함, OS를 설치하는 것과 유사한 효과를 낼 수 있지만 실제로 OS를 설치하지 않기 때문에 설치 용량이 적고 어플리케이션 실행속도 또한 빠름.

 

Docker Desktp 설치

https://www.docker.com/products/docker-desktop/

 

Docker Desktop - Docker

MOST COMMON

www.docker.com

 

 

Docker Hub

Docker Hub는 Docker Image를 올릴 수 있는 저장소이다.

도커 허브에 가입 후 Create repository를 눌러 repository를 생성해준다. 참고로 유료버전을 쓰지 않으면 private repository는 한개 밖에 생성이 되지 않는다...

Docker와 Docker Hub를 받고나면 Docker Image를 만들 준비가 끝난것이다.

여기서 Docker Image란 어플리케이션의 패키징 한 것. (환경, 종속성, 설정 값을 포함한 모든 것)

 

Spring boot project Docker Image만들기

 

Dockerfile은 프로젝트의 루트 경로에 있다. Dockerfile에 보면 from에 --platform=linux/amd64라고 적힌 부분은 맥북 M1칩을 쓰는 경우라면 꼭 붙여줘야한다. Dockerfile은 꼭 FROM 키워드로 시작하고 Docker Base Image를 가져온다는 것이다. COPY  는 bulid/libs/ 안에 jar를 컨테이너의 복사한다는 것이다. ENTRYPOINT 는 컨테이너가 시작되었을 때 스크립트를 실행한다는 것이다.

Dockerfile을 작성 후 오른쪽 상단에 Gradle -> Task -> build -> bootJar를 눌러 jar를 생성해준다 그럼 bulid/libs/ 안에 jar가 생성이 된다. 그 후 커멘드에 docker build --build-arg DEPENDENCY=build/dependency -t {docker hub계정/dockerhub repository:tag} --platform linux/amd64 . 로 이미지를 생성해준다. 커멘드에서 docker login을 통해 docker hub에 로그인 후

생성한 Docker Image를 docker push {docker hub계정/dockerhub repository:tag}로 docker hub에 올려준다.

 

다음 포스팅에서는 ec2에서 docker image를 pull 받아 container를 띄어보겠습니다.

 

728x90