도커란?
응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트
컨테이너 기반 오픈 소스 가상화 플랫폼이라고 정의할 수 있음
예를 들어, 컨테이너 안에 냉동 참치가 있다고 가정을 해보자 냉동 참치를 유지하기 위해서는 얼음과, 온도계, 환풍기 등 냉동 참치들을 얻기 위해 유지해야 하는 요소들도 컨테이너 안에 함께 있다.
여기서 냉동 참치는 내가 배포하고자 하는 프로그램이고 해당 프로그램을 실행하기 위한 운영체제, Oracle, Node 여러가지 요소가 컨테이너 안에 있다고 보면 된다.
위와 같은 프로그램을 실행하기 위한 요소들을 한번에 Image로 저장할 수 있고 해당 Image를 다시 풀어(컨테이너화) 세팅할 수 있다.
도커가 없던 시절에는 리눅스 환경에서 하이퍼바이저 기반의 VM을 만들어서 사용하였다.
VM으로 분리된 공간에서 무언가 하기 위해서는 해당 공간에 새로 OS를 설치해야함
→ OS위에 새로운 OS를 돌리다보니까 리소스 낭비가 너무 심함
도커를 사용했을때는 도커 엔진 위에 컨테이너를 쌓는 방식으로 사용할 수 있음