예전부터 도커는 자주 사용했지만, 그 원리와 동작 방식을 자세히 알지는 못했다. 이번 기회에 도커가 어떻게 동작하는지 알아보면서, 도커 파일에서 내가 궁금했던 부분을 하나씩 알아가 보려고 한다.
Virtual Machine이란 무엇인가?
가상화, Virtual Machine과 Hypervisor
Virtual Machine(이하 VM)의 경우 Hyperviosr의 도움을 받는다. 그렇다면 도커와 비교하기 전에 VM에서 Hypervisor가 어떻게 동작하는지, 그리고 어떤 부분에 있어서 Hypervisor가 가지고 있는 능력이 도커와 비교되는지 알아보려고 한다. 먼저 VM의 뜻을 풀어보면 "가상 기계"이다. 무언가 진짜가 아닌 가상화를 통해 이루어지는 기계라는 것이다.
가상화란 결국 하드웨어의 자원을 논리적으로 나누어서 추상화 하는 것이다. 하나의 하드웨어를 마치 여러개의 하드웨어인 것처럼 가상화하거나, 여러 하드웨어를 마치 하나의 하드웨어로 묶어 하나인 것처럼 역할하게 하거나 하는 것이다.
근데 생각해보면 이렇게 VM에는 다양한 OS가 깔릴 것이다. 이런 OS들은 서로 다른 커널을 가지고 있고, 같은 명령어라도 언어가 다르다. 이러한 명령어를 해석해서 하드웨어가 이해할 수 있게 지원하는 시스템이 바로 Hypervisor이다. 윈도우의 경우 Hyper-V, 그리고 리눅스의 경우에는 KVM/QEMU를 기본적으로 지원한다. 이러한 하이퍼바이저는Type1과 Type2로 구분지을 수 있다.
Type 1의 경우에는 물리적인 하드웨어 바로 위에 하이퍼바이저가 위치한 방식 - 베어 메탈 하이퍼바이저라고도 부른다 - 이다. 이런 하이퍼바이저의 경우 Host OS가 없이 바로 하드웨어에 직접 설치되는 구조이다. 이러한 Type 1의 경우 운영체제에 별도로 리소스를 할당하지 않기에 부하가 적고 리소스 관리가 유연하지만, 자체적인 관리 기능이 없기에 콘솔의 필요성이 대두된다. 그와는 다르게 Type 2의 경우에는 Host OS - 우리가 흔히 말하는 윈도우나, 우분투 등등 - 에서 실행된다.
자세한 내용은 나중에 가상화랑 하이퍼바이저를 더 자세하게 다룰 때 이야기하고 일단은 넘어가도록 하겠다.
'ETC' 카테고리의 다른 글
[책 리뷰] 모두의 네트워크 기초 - 10일만에 배우는 네트워크 (2024, 길벗) (0) | 2024.05.15 |
---|---|
[번역] 개발자를 위한 멘탈 케어 방법 6가지 (0) | 2024.03.15 |
RDBMS와 NoSQL - ACID, Transaction 등등 (0) | 2023.08.17 |
[클라우드] CKA 합격 및 후기, 혹은 팁 (1) | 2023.06.05 |
[번역] 코드에 주석을 다는 완벽한 연습 (0) | 2023.01.31 |