-
도커와 가상화 기술(VM)과의 차이백엔드 관련 강의 공부/도커와 CI환경 2023. 12. 29. 17:12
가상화 기술이 나오기 전
한 대의 서버를 하나의 용도로만 사용, 하나의 서버에 하나의 운영체제, 하나의 프로그램을 운영하여 안정적이지만 굉장히 비효율적인 방식
하이퍼 바이저 기반의 가상화 - 논리적으로 공간을 분할하여 VM이라는 독립적인 가상 환경의 서버 이용
호스트 시스템에서 다수의 게스트 OS를 구동할 수 있게 하는 소프트웨어, 그리고 하드웨어를 가상화하면서 하드웨어와 각각의 VM을 모니터링 하는 중간 관리자
하이퍼 바이저에 의해 구동되는 VM은 각 VM 마다 독립적인 가상 하드웨어 자원을 할당 받아서 논리적으로 분리되어 있는 VM에 오류가 발생해도 다른 VM으로 퍼지지 않는다.
도커와 VM의 대략적인 구조도
공통점
도커 컨테이너와 가상 머신(VM)은 기본 하드웨어에서 격리된 환경 내에 어플리케이션을 배치하는 방법
차이점
격리된 환경을 얼마나 격리시키는 지에 대한 차이
컨테이너는 하이퍼바이저와 게스트 OS가 필요하지 않아서 더 가볍다는 장점이 있다.
(OS는 굉장히 무겁기 때문이다)
어플리케이션을 실행할 때 컨테이너 방식에서는 호스트 OS 위에서 어플리케이션의 실행 패키지인 이미지를 배포하면 된다. 하지만 VM은 VM을 먼저 띄우고, Guest OS를 부팅하고 그 다음에 어플리케이션을 실행하는 구조기 때문에 훨씬 복잡하고 무겁다.
VM이 사용 방법이 간단하긴 하지만 속도가 굉장히 느리다는 단점 때문에 도커가 많이 주목받고 있다.
프로세스들은 커널을 공유하지만 컨테이너는 격리되어 있다. 카카오톡, 크롬, 노션이 있을 때 각각의 컨테이너 안에 격리가 되어있으며 하드디스크에서도 각각의 프로세스마다 격리가 된다.
결론적으로 커널은 공유가 되지만 하드디스크, 네트워크, RAM, CPU는 카카오톡 프로세스만을 작동시키는데 필요한 양을 별로도 분리시켜 놓는다.
'백엔드 관련 강의 공부 > 도커와 CI환경' 카테고리의 다른 글
실행 중인 컨테이너에 명령어 전달 - exec 명령어 (0) 2023.12.29 도커 컨테이너의 생명주기 (0) 2023.12.29 컨테이너 나열 - ps 명령어 (0) 2023.12.29 이미지로 컨테이너 만들기 (0) 2023.12.29 도커와 컨테이너의 기본 개념들 (0) 2023.12.29