콘텐츠로 이동

컨테이너 (Container)

Jan 27, 2026

컨테이너(Container)는 전체 OS를 가상화하지 않고, 단일 커널 위에서 애플리케이션들을 서로 격리하여 가상화와 유사한 효과를 제공하는 OS 수준의 격리 기술이다.

비유하면 아파트(VM)가 아닌 셰어하우스(컨테이너)와 같다. 같은 집(커널)을 공유하지만 각자 방(컨테이너)에서 독립적으로 생활하는 것이다.

  • 전체 VM은 각각 별도의 OS를 실행하므로 자원 낭비가 크다
  • 모든 앱이 같은 OS에서 실행된다면 전체 가상화는 불필요하다
  • 성능 관리, 자원 제한, 이동성만 필요한 경우가 많다
  • VM보다 가볍고 빠른 격리 방법이 필요하다

핵심 가정은 같은 OS의 앱들은 전용 VM 없이도 격리 가능하다는 것이다.

1 단일 커널
하드웨어 가상화 없이 단일 커널만 설치
2 OS 가상화
OS와 디바이스를 가상화하여 각 컨테이너에 제공
3 격리 환경
각 컨테이너에 자체 네트워크, 사용자, 파일시스템 뷰 제공
4 자원 제한
CPU/메모리 자원을 컨테이너별로 할당 및 제한
VM 방식
App + Guest OS VM 1
App + Guest OS VM 2
App + Guest OS VM 3
Hypervisor 하드웨어 가상화
Container 방식
App Container 1
App Container 2
App Container 3
Single Kernel 커널 공유

VM은 각각 전체 Guest OS를 포함하지만, 컨테이너는 하나의 커널을 공유하면서 앱만 격리한다.

최초의 상용 컨테이너 기술 중 하나이다.

Solaris Zones 구조
Zone 1 Non-global
Zone 2 Non-global
Global Zone 전체 관리
Solaris Kernel (단일)
  • Global zone: 전체 시스템 관리
  • Non-global zones: 격리된 컨테이너, 각 zone이 자체 스케줄러 실행 가능

최초의 컨테이너 유사 기술이다. 프로세스와 파일시스템을 격리한다.

Linux 커널의 clone() 시스템콜 플래그로 구현한다. Namespace와 Cgroups를 활용한다.

LXC 기반으로 시작한 컨테이너 플랫폼이다.

  • 이미지: 컨테이너 실행에 필요한 모든 것 포함
  • 레지스트리: 이미지 공유 (Docker Hub)
  • 오케스트레이션: Docker Compose, Swarm

컨테이너 오케스트레이션 플랫폼이다. 여러 호스트에 걸친 컨테이너 자동 배포, 스케일링, 관리를 담당하며 Pod 단위로 컨테이너 그룹을 관리한다.

특성Virtual MachineContainer
격리 수준완전 (하드웨어)OS 수준
오버헤드높음 (전체 OS)낮음
시작 시간분 단위초 단위
이미지 크기GB 단위MB 단위
보안강력한 격리커널 공유로 취약 가능
호환성다른 OS 가능같은 OS만
  • 빠른 배포: 수초 내 시작/종료
  • 효율성: 커널 공유로 자원 절약
  • 이동성: 이미지로 패키징하여 어디서나 실행
  • 마이크로서비스: 서비스별 컨테이너로 분리
  • CI/CD: 빌드-테스트-배포 파이프라인
장점단점
VM 대비 훨씬 가벼움같은 OS만 지원
빠른 인스턴스화/삭제커널 공유로 인한 보안 우려
자동화/오케스트레이션 용이VM만큼 강력한 격리가 아님