Docker
Docker란 가상 머신처럼 독립된 실행 환경을 만들어주고 어플리케이션을 구동하는데 필요한 모든 종속성을 패키징 함, OS를 설치하는 것과 유사한 효과를 낼 수 있지만 실제로 OS를 설치하지 않기 때문에 설치 용량이 적고 어플리케이션 실행속도 또한 빠름.
Docker Desktp 설치
https://www.docker.com/products/docker-desktop/
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를 띄어보겠습니다.
'DevOps' 카테고리의 다른 글
jenkins EC2 서버와 외부 EC2 서버 연결 (0) | 2022.11.06 |
---|---|
jenkins와 Github 연동 (1) | 2022.11.06 |
AWS EC2 linux jenkins 설치 (0) | 2022.11.06 |
AWS EC2에서 docker 실행과 Nginx와 AWS loadbalancer를 이용한 loadbalancing (0) | 2022.10.10 |
Container와 VM (0) | 2022.10.10 |