[5] 가상 머신 VS Docker 컨테이너

    728x90
    반응형

     

    가상 머신 VS Docker 컨테이너

     

     

     

    Solution : Virtual Machines / Virtual Operating Systems ??

    가상 머신(Virtual Machine)이란?

    가상 머신은 '컴퓨터 속의 컴퓨터'라고 생각하면 됩니다.

     

    작동 방식

    - 호스트 컴퓨터(Windows/macOS/Linux) 위에서 실행
    - 완전한 운영체제를 포함한 독립적인 가상 컴퓨터 생성
    - 필요한 모든 도구와 라이브러리를 설치 가능


    장점

    1. 완벽한 환경 격리
    2. 안정적인 동작 보장
    3. 팀원간 동일 환경 공유 가능


    단점

    1. 높은 리소스 사용량
       - 각 VM ( Virtual Machine )마다 완전한 OS ( Operating System ) 필요
       - 메모리, CPU, 저장공간 많이 차지
    2. 느린 성능
       - 여러 VM 실행 시 시스템 부하 큼
    3. 관리의 어려움
       - 설정과 공유가 복잡
       - 배포 과정이 번거로움

     

     


    도커 컨테이너란?

    도커 컨테이너는 애플리케이션과 필요한 최소한의 환경만을 패키지화합니다.


    작동 방식

    - 호스트 OS 위에 도커 엔진 하나만 설치
    - 컨테이너는 필요한 런타임과 라이브러리만 포함
    - 호스트 OS의 커널 공유

    • 커널: 운영체제의 핵심 부분으로, 하드웨어와 소프트웨어 사이의 중개자 역할
    • 도커는 호스트 컴퓨터의 커널을 공유해서 사용
    • 각 컨테이너마다 새로운 운영체제를 설치할 필요가 없어 효율적
    OS 커널이란?
    
    운영체제의 가장 핵심적인 부분
    주요 역할:
    
    하드웨어 자원 관리 (CPU, 메모리, 입출력 장치)
    프로세스 관리
    파일 시스템 관리
    보안 관리
    
    
    도커의 경우 이 커널을 호스트 OS와 공유함으로써 자원을 효율적으로 사용할 수 있습니다

     


    장점

    1. 가벼운 리소스 사용
       - 최소한의 구성요소만 포함
       - OS 커널 공유로 효율적


    2. 빠른 실행 속도
       - 즉시 시작과 종료 가능

    • 가상머신처럼 부팅 시간이 필요 없음
    • 컨테이너는 프로세스처럼 즉시 실행되고 종료됨

       - 적은 시스템 부하

    • 호스트의 자원을 직접 사용하므로 성능 저하가 적음
    • 메모리 사용량이 가상머신보다 훨씬 적음


    3. 쉬운 관리와 배포
       - 구성 파일로 환경 정의

    • Dockerfile로 모든 설정을 코드화
    • 환경 구성을 자동화하고 버전 관리 가능

       - 이미지 공유가 간단

    • Docker Hub 등을 통해 이미지를 쉽게 공유
    • 다른 개발자들과 정확히 같은 환경을 공유 가능

       - 빠른 환경 복제

    • 새로운 개발자 온보딩이 쉬움
    • 테스트 환경 구축이 빠름

     

     

     

     


    도커가 선호되는 이유

    1. 효율성

       - 필요한 것만 포함해 리소스 낭비 최소화


    2. 이식성

       - 어디서든 동일하게 실행
       - 개발부터 배포까지 일관된 환경


    3. 간편한 관리

       - 문서화된 환경 구성
       - 버전 관리 용이

     

     


    결론

    가상 머신도 환경 격리라는 목적을 달성할 수 있지만, 도커 컨테이너가 더 효율적이고 현대적인 솔루션을 제공합니다.

    특히 개발 환경의 표준화와 배포 과정의 간소화가 필요한 현대 개발 환경에서는 도커의 장점이 더욱 부각됩니다.

     

     

     

     

     

     

    참조

    https://www.udemy.com/course/docker-kubernetes-2022

    728x90
    반응형

    '강의 > Docker & Kubernetes : 실전 가이드' 카테고리의 다른 글

    [3] Why Container?  (0) 2025.02.05
    [2] What is Docker?  (0) 2025.02.04

    댓글