Docker란?
애플리케이션을 패키징 할 수 있는 툴
Docker Container
- 애플리케이션뿐만 아니라 node.js, dependencies 등등 애플리케이션 구동을 위한 모든것들이 담겨있음.
- 어떤 pc에서든지 동일하게 작동함.
- host os에서 컨테이너 엔지니어라는 소프트웨어만 설치하면 각각의 컨테이너를 고립된 환경에서 구동할 수 있게 해줌.
- 컨테이너 구동을 위해서는 컨테이너 엔진이 필요함.-> 컨테이너 엔진 = 도커!
VM과 다른점은?
- VM은 운영체제를 포함하고 있기때문에 굉장히 무겁고, 리소스를 많이 잡아먹음.
- VM에서 경량화된 버전이 도커 컨테이너라고 생각하면 됨.
도커의 3가지 구성요소
도커파일 / 이미지 / 컨테이너
도커의 동작 방식은 컨테이너를 만들고 배포하고 구동!
도커파일
- 컨테이너를 어떻게 만들지가 적힌 설명서
- install dependencies
- run setup scripts
이미지
- 실행되고 있는 애플리케이션의 상태의 스냅샷.
- 변경이 불가능한 불변 상태를 가지고 있음.
- 객체지향에서는 클래스와 같은 역할.(템플릿)
container
- 애플리케이션 이미지를 고립된 환경에서 실행할 수 있는 것.
- 컨테이너 안에서 이미지를 통해 애플리케이션이 동작함.
- 애플리케이션은 개별적으로 수정이 가능한 상태
Container Shipping
도커 이미지 배포하는 과정
로컬에서 이미지 생성 -> container registry 에 push & pull-> 필요한 서버나 다른 pc에서 실행하기.
public / private
- public
docker hub
Github Packages
- private (각 기업에서 주로 사용)
AWS
GoogleCloud
Microsoft Azure
총정리
드림코딩 강의를 바탕으로 작성한 내용입니다.
출처 : https://www.youtube.com/watch?v=LXJhA3VWXFA