도커란?
- 어플리케이션을 패키징 할 수 있는 툴
- 컨테이너라는 공간에 어플리케이션, 시스템 툴, 의존 등 어플리케이션 실행에 필요한 요소들을 추가하여 다른 환경에서도 쉽게 환경을 구축
VM과 도커의 차이
- VM의 경우 각 가상 머신마다 게스트 운영체제를 포함하여 무겁다
- 도커는 게스트 운영체제 없이 컨테이너 엔진을 통해 독립적으로 실행되며 host os를 공유
도커의 구성 요소
Dockerfile
- 컨테이너를 어떻게 구성할 것인가에 관한 기술
- 어플리케이션 실행을 위한 설정파일
- 파일, 설치할 의존성, 환경 변수, 설치 스크립트 등의 내용 포함
Image
- 애플리케이션을 실행하기 위한 모든 요소를 포함하는 패키지
- 변경 불가능
Container
- 이미지가 실행되는 독립적인 환경
- 이미지가 클래스라면 컨테이너는 인스턴스
도커 실행 과정
- 도커 파일을 빌드하여 이미지 생성 후 Container Registry에 PUSH
- 다른 서버에서 이를 PULL 하고 도커 컨테이너 위에서 실행