[Docker] 가상화 방식

정석·2024년 9월 13일

Docker

목록 보기
1/2
post-thumbnail

💡가상화 기술

하나의 서버에 여러개의 논리적 환경을 만든다.

이를 통해 서버 내에서 발생한 문제가 논리적으로 다른 환경인 프로세스에 영향을 받지 않게 할 수 있다.

가상화 기술은 하이퍼바이저 방식컨테이너 방식 이 존재한다.


1. 하이퍼바이저 가상화

하이퍼바이저 방식을 구현하는 소프트웨어로 한 번쯤 접해봤던 버추얼박스가 있다.

버추얼 박스를 설치한 우리의 노트북은 서버 가 된다.

버추얼 박스가 곧 하이퍼바이저다. 이 하이퍼바이저는 여러 논리적 가상환경을 만들 수 있도록 한다. (그림 속 게스트 OS)

가상환경이 만들어졌다면 서버 공간의 자원을 사용하기 위해선 커널 을 통해서 접근해야만한다. 이 때 시스템 콜 을 이용해 접근을 할 수 있도록 돕는다.

근데 이 시스템 콜은 각각의 운영체제 마다 다르다. 따라서 만약, 가상화 환경의 여러 운영체제와 서버의 운영체제가 다르다면? 시스템 콜 또한 다르기에 서버에 접근할 수 없다.

이 때 하이퍼바이저 가 중간에서 시스템 콜을 통역해주는 역할을 하여 논리적 가상환경을 원활하게 사용할 수 있도록 도와준다.

2. 컨테이너 가상화

하이퍼바이저를 사용하지 않고, 직접 커널의 격리 기능을 활용하여 논리적 가상환경을 구축한다. 따라서 서버의 호스트 OS 를 모든 가상환경이 공유한다.

해당 그림처럼 하이퍼바이저의 담당 부분이 사라지고 실제 서버의 호스트 OS 의 커널을 나눠서 사용하기에 하이퍼 바이저 방식보다 오버헤드가 적은 걸 볼 수 있다.

따라서 하이퍼바이저 방식보다 부팅이 빨라 모던 애플리케이션에서 많이 사용되는 방식이다.

다만, 단점으로 호스트 OS 와 다른 OS 를 사용하는 컨테이너는 사용할 수 없다는 단점이 있다.

0개의 댓글