Docker 개요

도커가 있기 이전부터 가상화 기술은 존재했었다. 당연히 도커는 기존의 가상화 기술을 기반으로 만들어졌다. 기존의 가상화 기술인, 가상머신은 호스트 OS위에 게스트 OS 전체를 가상화 하여 사용하는 방식인데 이 방식은 무겁고 느리다. 추가적인 OS를 설치하여 가상화 하는 방법은 성능 문제가 있었고 이를 개선하기 위해 프로세스를 격리하는 방식이 등장하였다.

즉, Docker는 Virtual Machine과 상당히 유사한 기능을 가지면서, Virtual Machine보다 훨씬 가벼운 형태로 배포가 가능하다. 정확한 이해를 돕기 위해서, Virtual Machine 과 Docker Container의 차이를 살펴보자.

VM (Virtual Machine) : 가상 머신

스크린샷 2022-11-09 오후 9.16.54.png

가상화 이전의 시대에서는 하나의 서버에 하나의 어플리케이션만 구동시켰다고 한다. 이렇다 보니 하나의 서버에 남는 자원이 많았다. 이런 비효율성을 극복하기 위해 등장한 기술이 가상화 기술이다.

Hypervisor : 하이퍼바이저

Docker: 도커

스크린샷 2022-11-09 오후 9.17.01.png

Container : 컨테이너

<aside> 🔥 Docker는 컨테이너 기술을 사용하여 애플리케이션에 필요한 환경을 신속하게 구축하고 테스트 및 배포를 할 수 있게 해주는 플랫폼이다.

</aside>

Docker vs Virtual Machine

<aside> 🔥 사실 정확히는 Docker vs Virtual Machine 이라기 보다는 컨테이너 vs 하이퍼바이저 라고 봐야 정확한 것으로 보인다. 단순히 정리하면 Virtual Machine이 사용하는 하이퍼바이저 방식은 하드웨어의 리소스를 가상화하여 동작하는 것이고, 도커가 사용하는 컨테이너 방식은 OS를 가상화하여 동작하는 방식이다.

</aside>

Tip 가상화 : 실제 물리적으로 분리된 것은 아니고 논리적으로 분리한 상태라고 이해하면 쉽다.

Docker is best?