가상화 - VMWARE
•
vmware같은 가상화 프로그램을 사용하면 (위의 그림에서) 가상 머신에서 NIC이상 통신하기 위해 kernel mode에서 VMNet이라는 것을 생성
•
가상머신에서 새로운 운영체제를 설치하면 Host OS 위에 user mode, kernel mode, hard ware가 생성
◦
그림에서 보다시피 실제 물리적인 NIC은 하나고 이걸 가상머신에서는 ‘소프트웨어적’으로 구현
◦
따라서, 가상머신에서는 소프트웨어적으로 host machine에 있는 장치들이 구현
•
(Guest OS) 가상머신의 리눅스에서 인터넷 통신을 할때, (1) 가상머신의 소프트웨어적으로 구현된 NIC이 VMNet(Virtual NIC)으로 연결 (2) VMNet은 실제 물리적인 NIC이 아님. Guest OS의 S/W NIC은 Host OS에서 구현된 VMNET을 L2스위치처럼 사용 (3) VMNET #0이 일반적으로 Host OS의 driver랑 통신하면서 인터넷 통신이 가능해짐
⇒ 가상머신을 쓰는 이유는 usermode에서 돌아가는 application 때문인데 (dependency), 굳이 가상머신의 kernel mode, h/w mode를 매번 생성해야하나?라는 의문이 생김
Docker
•
도커는 application, binaries, library만 설치 (container)해서 가상화를 실행시킬 수 있도록 하는 기술
•
kernel mode, user mode를 docker engine이 대신 처리하도록 함
•
Dockerfile: container를 어떻게 만들어야하는지 recipe
◦
copy files, install dependencies, environment variables, setup script
•
Image: Dcokerfile로 만든 환경의 snapshot
•
Container: application image을 실행시키는 환경