컴퓨터는 소프트웨어 하드웨어로 구성된다.
하드웨어에는 물리적인 CPU, RAM, HAD 등이 있고
소프트웨어는 어플리케이션으로 User mode, Kernel Mode로 나뉜다.
User mode는 사용자가 접근할 수 있는 영역이고 Kernel mode는 h/w에 직접 접근할 수 있게해준다.
운영체제(os)가 Application에 고유공간을 보장하는데
이를 Virtual Memory(우리가 여러개의 프로그램을 동작 할 수 있게 하는 이유) 라고 한다.
가상메모리는 프로세스마다 독립적인 공간이다.
예를들어 word 두 개를 실행했을 때 각 입력한 데이터는
독립적으로 동작한다.
vmware를 설치하면 host os가 window인 상태에서 리눅스등 여러가지 os사용이 가능하다.
vmware가 S/W 단에서 VND를 만들고 VND를 이용해
H/W 에 가상 NIC을 만든다 이때 NIC은 공유기를 통해
Host OS의 NIC를 가져다가 사용한다.
그렇다면 Kenel mode와 H/W는 HOST OS와 동일할텐데
따로따로 만들어서 실행시켜야 될까??? 그래서 도커가 등장하게 되었다.
우리가 필요한건 User mode의 어플리케이션이다 커널이나
하드웨어는 도커 엔진을 통해 호스트 OS에서 가져다가 사용하면 된다.
그래서 어플리케이션을 돌리자고 하드웨어나 OS프로그램을
돌릴 필요가 없어지기 때문에 효율이 급속도로 좋아진다.