Docker

Docker 개념 및 가상머신(VM)과의 차이점

개발자K씨 2023. 12. 19. 20:11

도커(Docker)는 컨테이너 기술을 사용하는 애플리케이션 개발 및 배포를 위한 플랫폼입니다. 이를 이해하기 위해, 먼저 '컨테이너'라는 개념을 알아야 합니다. 컨테이너는 애플리케이션을 실행하는 데 필요한 코드, 라이브러리, 설정 파일 등을 함께 묶어서, 다른 환경에서도 동일한 방식으로 실행할 수 있도록 하는 가벼운 가상화 기술입니다.

 

docker 이미지

 

도커의 핵심 개념

  1. 이미지(Image): 애플리케이션과 그 실행에 필요한 모든 것을 포함하는 불변의 템플릿입니다.
  2. 컨테이너(Container): 이미지를 기반으로 실행된 인스턴스로, 격리된 환경에서 애플리케이션을 실행합니다.
  3. 도커 파일(Dockerfile): 이미지를 생성하기 위한 명세서로, 어떤 기반 이미지를 사용할지, 어떤 명령을 실행할지 등을 정의합니다.
  4. 도커 허브(Docker Hub): 다양한 도커 이미지들이 공유되는 중앙 집중식 저장소입니다.

가상머신(VM)과의 차이

도커 컨테이너와 가상머신(VM)은 모두 애플리케이션을 격리된 환경에서 실행하기 위한 기술이지만, 몇 가지 중요한 차이점이 있습니다.

  1. 성능: 도커 컨테이너는 호스트 시스템의 커널을 공유하고, 오버헤드가 적습니다. 반면, VM은 전체 게스트 운영 시스템을 실행해야 하므로 더 많은 리소스를 사용하고 느릴 수 있습니다.
  2. 시작 시간: 컨테이너는 거의 즉시 시작되는 반면, VM은 운영 체제를 부팅하는 데 시간이 더 걸립니다.
  3. 이식성: 도커는 애플리케이션과 그 종속성을 하나의 이미지로 패키징하여, 다양한 환경에서 일관되게 실행할 수 있도록 합니다.
  4. 자원 분리 및 관리: VM은 물리적 자원을 분리하고 전체 OS를 가상화하는 반면, 도커는 프로세스 레벨의 격리를 제공합니다.