이 방식의 문제점: 인터넷 뱅킹을 위해 보안 프로그램을 많이 설치했더니 게임이나 웹 브라우저 성능이 떨어진다. 한 대의 컴퓨터에서 모든 것을 처리하려고 하면 어떤 프로그램 동작이 다른 프로그램의 동작을 간섭하거나, 특정 프로그램이 성능을 독점할 경우 또 다른 프로그램의 성능이 떨어지는 단점이 있다.
-->
가상머신은 말 그대로 가상 컴퓨터이다. 두개의 프로그램을 각각의 가상머신에서 실행시켜보자. 하나의 컴퓨터 안에서 두 개의 가상화된 컴퓨터가 동작하기 때문에 서로 간섭을 일으키지 않게 된다. 가상 머신 성능을 조작해서 게임 컴퓨터에는 CPU, Memory를 많이 할당하고, 인터넷 뱅킹용 컴퓨터에는 CPU, Memory를 적게 할당해 사용할 수 있다.
이 방식은 Traditional Deployment보다는 효율적이지만, 가상머신은 완전한 컴퓨터이고 가상머신에 일일히 운영체제를 설치해야 하기때문에 뒤에 나오는 Container Deployment(컨테이너 중심 배포)보다는 무겁다.
-->
게임과 인터넷 뱅킹 소프트웨어가 각각 컨테이너로 배포된다고 가정해보자.
이때 게임과 인터넷 뱅킹 프로그램은 하나의 OS 상에서 구동된다.
이것만 보면 전통적ㅇ니 배포에서 하나의 OS 위에서 프로그램을 여러 개 구동시킨 것과 별 차이가 없어 보인다. 하지만 컨테이너 중심의 배포는 여기서 중요한 기술적인 차이점이 하나 있다. 게임과 인터넷 뱅킹이 실행되면서 '이 컴퓨터에서는 나만 실행되고 있다'라고 판단할 수 있도록, 실제로 두 프로그램 간에 간섭을 일으킬 수 없는 장벽을 친다.
이렇게 장벽을 치는 것과 동시에 OS는 게임과 인터넷 뱅킹이 CPU, Memory등의 자원 또한 독립적으로 사용할 수 있도록 할당하고 관리한다. OS의 관점에서 보자면, 둘 다 OS 상에서 구동되는 프로그램이지만 말이다. 이와 같은 컨테이너 동작 방식을 OS 커널을 공유하는 가상화라고 한다.
주의할 점이 있다.컨테이너는 OS를 공유하는 방식이기 때문에 내 프로그램의 문제가 OS에 문제를 일으킬 경우, OS에서 구동 중인 전체 컨테이너의 문제가 될 가능성이 있다.