Docker 란?
- 리눅스 기반의 가상화 컨테이너 기술
- 초기에는 가상화머신에서 출발해서 가상화 컨테이너 기술로 발전
가상화머신이란?
- 하드웨어 기술이 발전함에 따라 잉여자원이 발생하고 그 자원을 나눠서 사용하는것으로 출발
- 프로그램이 하나 구동할때 필요한 요소는 프로그램, 하드웨어 이둘을 이어주는 커널이 필요하다.

- hostOS위에 가상머신을 올려 여러개의 OS를 사용하니 가상머신에서 하나의 프로그램을 구동할때 가상하드웨어부터 가상커널등을 만드는데쓰는 자원소비가 상당했다.
- 그래서 프로그램구동에 필요한 최소한의 자원을 제외하고 HOST와 연결부터 필요한 커널, 하드웨어 할당 등을 도커가 처리해주고 도커 위에 프로그램 단위로 하나의 이미지를 만들어 컨터이너안에서 구동하는 기술을 가상화컨테이너 기술이라고한다.

왜 리눅스 일까?
- 도커는 다른말로 리눅스기반의 컨테이너 가상화 기술이라 부른다.
- 근데 왜 리눅스일까.
첫번째이유 : 무료이다.
두번째이유는 아래와 같다.
- 유닉스개열의 OS는 크게 3가지로 분류된다.
- macOS, windows, Linux
- 유닉스는 각 프로그램마다 user아이디를 생성해주고 거기에 권한을 일일일 설정해서 사용한다. 하지만 이러한 특징은 windows는 삭제, macOS는 있기는 하지만 사용되지않고, 리눅스만 그 특징을 그대로 이어왔다.
- Docker는 각 이미지, 즉 프로그램별로 최소한의 구동을 하기위해 각각에 이미지마다 별도의 계정들을 생성하고 권한을 주기위해서는 리눅스밖에 없는것이다.