Search
*️⃣

Docker

Category
BlogPost
Venue
Backbone
Text
PPT

가상화 - 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을 실행시키는 환경

Reference