Cloud

[Cloud] Docker 란? 가상머신과의 차이

Jeong Jeon
반응형

 Docker란?

컨테이너 기반의 오픈소스 가상화 플랫폼이다.

조금 자세히 표현하자면, Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이라고 한다.

도커는 컨테이너라는 단위를 사용하여 패키징(컨테이너로 추상화하고 인터페이스를 제공)하며, 이 컨테이너에는 도구, 런타임 , 라이브러리등 어떠한 소프트웨어를 실행하는데 필요한 재료를 포함하고 있다.

이때의 이 재료들을 패키징 해놓은것을 도커 이미지 라고 한다.

그래서 도커의 컨테이너에 소프트웨어를 실행하는데 필요한 재료(이미지)들을 넣어두고, 해당 컨테이너를 통해 시스템 환경에 구애받지 않고 앱을 배포 및 확장하고 실행할 수 있게된다.

쉽게 표현하면 방을 나눠두고 해당 방은 앱 1번을 실행 시키는 환경을 조성해놓고 그 방을 컨테이너라고 표현한다고 보면 될것같다.

 

 도커를 쓰는 이유

프로그램을 다운 받는 과정을 굉장히 간단하게 만들기 위해서이다. 도커 없이 프로그램 받을 때 서버, 패키지 버전, 운영체제 등에 따라 프로그램을 설치하는 과정중에 많은 에러들이 발생하게 되고 설치 과정이 다소 복잡하다.

하지만 도커를 이용하면 이미 만들어놓은 환경을 사용하기 때문에 에러도 덜 발생하며, 설치하는 과정도 훨씬 간단해진다.

추가적으로 개인 적인 생각에는 MSA 구조를 사용했을때 각각의 Service를 컨테이너로 분리하여 한개의 서비스가 문제가 생겼을때 해당 컨테이너만 수정해서 사용할 수 있다고 생각이 든다.

 

  • 하드웨어의 발전으로 더 많은 효율성을 내기 위해 가상화 사용
  • Docker는 게스트 OS가 없음
  • 따라서, 기존의 가상 시스템보다 퍼포먼스가 좋음
  • 실행환경을 컨테이너로 추상화, 동일한 인터페이스 제공 하여 프로그램의 배포 관리가 단순해진다.

 

도커와 가상머신의 차이가 궁금해 질것이다.

비교를 한번 해보자.

 

도커와 가상머신의 비교

 

가상머신

가상머신 계층도 (출처 : http://www.docker.com/whatisdocker)

 

  • 가상머신은 편하지만 성능이 좋지 못하다는 단점이 있다.
  • 가상머신 자체는 완전한 컴퓨터이기 때문에 항상 게스트 OS를 설치해야한다.
  • 이미지 안에 OS가 포함되기 때문에 이미지 용량이 커진다.

 

Docker

Docker 계층도 (출처:  http://www.docker.com/whatisdocker)

 

  • Docker는 가상화보다 경량화된 방식
  • 게스트 OS를 설치하지 않음 => 도커엔진 위에서 별도로 돌아갈수 있다.
  • Docker 이미지에 서버 운영을 위한 프로그램과 라이브러리만 격리해서 설치 가능하고, OS는 호스트와 공유

 

 

아직 직접 써보지는 않았지만, 필요한 곳에서는 정말 편리하게 사용할 수 있는 기술인것같다.

조금이라도 아는것과 모르는것의 차이는 분명한법

다음에는 간략하게나마 사용해보고 정리해 둬야겠다.

반응형