본문 바로가기
Devops/Docker

[Docker] Docker / Virtual Machine

by dev_ss 2023. 2. 10.

과거에는 VM(가상머신)과 Container(컨테이너)라는 개념이 존재하지 않았고, 그에

따라 필요한 만큼 물리적으로 서버를 새로 구축하여 연결하는 작업을 했었다.

 

각 서비스가 요구하는 환경설정이 있고, 특정 서비스가 다른 서비스가 필요로 하는 환경과 충돌이

일어날 수 있기 때문에 물리적으로 분리를 시켜 구축을 했었던 것이다.

 

이로 인해 나온 것들이 Virtual Machine(가상머신)과 Containerization(컨테이너화)이다.

위 두 가지를 통하여 서로 격리된 환경에서 애플리케이션을 구동할 수 있는 것이다.

 

가상머신과 컨테이너의 가장 큰 차이점은 OS의 공유하는 데 있어 차별점을 둔다.

 

1. Virtual machine (가상머신)

 

<가상머신의 예>

 

가상머신은 생성할 때마다 Guest OS를 새로 설치해야 하기 때문에

각 OS 설치에 따른 컴퓨터 자원을 점유하기 때문에 자원 소모가 크다는 단점을 가지고 있다. 

 

 

2. Container (컨테이너)

 

 컨테이너는 OS를 공유한다는 점에서 VM의 단점을 극복할 수 있었다.

 

아래의 예시를 통하여 간략하게 볼 수 있다.

 

<컨테이너 예시>

다음과 같이 Host의 OS를 공유하고 각자 격리된 환경에서 실행하는 것이다.

 

여기서 Kernnel 또한, 가상머신은 Guest OS를 나누어 관리를 하며

일정한 컴퓨터 자원을 점유하고 있지만

 

컨테이너는 OS를 공유함으로 자원을 효율적으로 관리할 수 있었고

OS의 크기가 크기 때문에 상대적으로 자원을 덜 필요로 한다는 것이 장점이다.

반응형