Karlie_dev
{SourceCode}
Karlie_dev
전체 방문자
오늘
어제
  • 분류 전체보기
    • 컴퓨터공학
    • JAVA
    • CSS
    • 자바스크립트
    • 파이썬
    • 스프링
    • DB
      • SQL
      • MySQL
      • Oracle
      • MongoDB
      • MariaDB
    • 형상관리
    • IDE
      • VS Code
      • Eclipse
    • 알고리즘
    • Server
    • AWS
    • 개발소리
    • Docker&Kubernetes
    • Cloud (클라우드)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 쿠버네티스
  • mariadb
  • JavaScript
  • Spring
  • 파이썬
  • MySQL
  • 스프링부트
  • Minikube
  • k8s
  • 도커
  • nodejs
  • MongoDB
  • 오라클
  • 스프링
  • 자바스크립트
  • 마리아디비
  • docker
  • kubernetes
  • AWS
  • oracle

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Karlie_dev

{SourceCode}

도커와 기존 VM의 공통점과 차이점
Docker&Kubernetes

도커와 기존 VM의 공통점과 차이점

2023. 3. 5. 17:45

먼저, 하이퍼 바이저에 대해서

VM은 가상화 기술로 "하이퍼 바이저 기술 기반"에 대해 짚고 넘어가야 한다.

하이퍼 바이저는 호스트 시스템에서 여러 게스트 OS(윈도우, 리눅스 등)를 구동할 수 있게 해주는 소프트웨어 이다.

또한 하드웨어를 가상화 하면서 하드웨어와 각각의 VM을 모니터링하는 중간 관리자 역할을 한다.

이러한 기술로 기존에는 하나의 서버로, 하나의 용도로만 사용되었던 이전과는 달리

하나의 서버에서 논리적으로 공간을 분할해서 VM이라는 독립적인 가상 환경의 서버를 이용 가능하게 되었다.

 

하이퍼 바이저 기반의 VM은 어떻게 생겼을까

하이퍼바이저에 의해 구동되는 VM은 각 VM마다 독립된 가상 하드웨어 자원을 할당 받게 된다.

 

위와 같은 구조로 생겼으며, 중간에 하이퍼 바이저가 존재함을 확인할 수 있다.

코어가 하나씩 독립된 가상 하드웨어에 자원을 받는 것이다.

코어가 각 독립된 자원을 할당 받는다.

왼쪽의 VM에서 오류가 발생해도 격리가 되어 다른 VM에 에러가 퍼지지 않는다는 장점이 있다.

 

그렇다면, 도커와 VM 의 공통점과 차이점은 무엇이 있을까

공통점이라면 도커 컨테이너와 가상 머신 둘 다, 기본 하드웨어에서 격리된 환경 내에서 애플리케이션을 배치하는 방법이라는 것이다. 

 

먼저 컨테이너는 도표에서도 확인할 수 있듯이, 하이퍼바이저와 게스트 OS가 없기 때문에 비교적 가볍다.

그리고 VM은 하이퍼바이저로 게스트 OS를 각각 얹어주기에 더 무겁다. 원체 게스트 OS가 무거운 것도 한 몫 한다.

도커 컨테이너는 같은 호스트의 다른 컨테이너와 동일한 커널을 공유한다.

즉, 컨테이너 내부에서 실행되는 프로세스는 호스트 시스템(모든 프로세스 나열할 수 있는 권한이 있는 경우)에서 볼 수 있다.

 

또한 도커 컨테이너에서는 호스트 OS(Host Operating System) 위에 애플리케이션의 실행 패키지인 '이미지'를 배포만 하면 되는데

VM은 하나의 애플리케이션을 실행하기 위해서 VM을 띄우고, 자원을 할당하고, 게스트 OS를 부팅한 뒤에야 비로소 애플리케이션을 실행할 수 있다.

훨씬 보잡하고 무겁게 실행을 하게 되는 것이다.

결국 가상 머신과 함께 VM 내부에서 실행되는 모든 것들은 호스트 운영 체제나 하이퍼바이저와 독립되어 있기 때문에, 그만큼 간단하지만 무겁다는 의미이다.

 


참고자료

- https://www.inflearn.com/course/%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B0-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EB%8F%84%EC%BB%A4-ci

 

따라하며 배우는 도커와 CI환경 - 인프런 | 강의

이 강의를 통해 도커에 대해서 배울 수 있으며, CI 환경을 구성할 수 있습니다., - 강의 소개 | 인프런

www.inflearn.com

 

 

저작자표시 (새창열림)
    'Docker&Kubernetes' 카테고리의 다른 글
    • minikube 에서 docker 활성화 후 TLS 및 timeout 오류 해결 방법
    • minikube에서 아주 간단히 서비스 외부로 노출시키기
    • 간단한 쿠버네티스 아키텍처 알아보기
    • Docker는 무엇인지에 대한 기초 개념
    Karlie_dev
    Karlie_dev

    티스토리툴바