<aside> 🐳 Docker란?
</aside>
컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼
부두에서 컨테이너를 옮기과 관리하는 직업인 ‘docker’에서 따온 이름처럼, 컨테이너를 잘 다룰 수 있게 도와주는 도구임.
도커를 이용하면 1️⃣ 이미지를 실행시켜 컨테이너로 만들거나, 2️⃣ 생성된 컨테이너를 관리하거나
3️⃣ 컨테이너를 다시 이미지로 만드는 작업이 쉽게 가능해 짐.
가상화 : 물리적 자원인 하드웨어를 효율적으로 활용하기 위해 하드웨어 공간 위에 가상의 머신을 만드는 기술
컨테이너 : 컨테이너가 실행되고 있는 호스트 OS의 기능을 그대로 활용하면서 프로세스를 격리하여
독립 환경을 만드는 기술
👉 Docker는 독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술
<aside> ⚙ 가상화와 컨테이너
</aside>

가상화
가상 머신을 생성하기 위해서는 Hypervisor 또는 가상 머신 모니터라고 불리는 소프트웨어를 이용함.
Hypervisor

호스트 하드웨어에 설치되어 호스트와 게스트를 나누는 역할을 하고,
각각의 게스트는 하이퍼바이저에 관리되며 시스템 자원을 할당받게 됨.
이 때 하이퍼바이저에 의해 생성된 게스트는 호스트나 다른 게스트와 상호 간섭하지 않고, 완전히 분리된 환경에서 구동됨
하이퍼바이저를 활용하면 마치 하드웨어가 여러 개인 것처럼 하나의 서버를 여러 명이 나눠서 쓸 수 있음.
컴퓨터 한 대에서 서로 다른 OS를 동시에 사용 가능
**⚠️ 가상 머신으로 무언가를 하려면, 하이퍼바이저를 반드시 거쳐야 한다는 점에서, 속도 저하가 필연적임
또한 가상머신은 해당 환경을 구동하는데 필요한 파일을 모두 포함하고 있기 때문에,
가상머신을 배포할 때 만들어지는 이미지의 크기가 매우 커진다는 한계점이 있음.**