Container (컨테이너)
컨테이너는 애플리케이션과 그 실행 환경(라이브러리, 의존성, 설정 등)을 패키징하여 어디서나 일관되게 실행할 수 있는 가상화 기술이다.
가상머신(VM)과 달리 운영체제(OS)를 공유하면서 프로세스 단위로 격리되므로, 경량화·이식성·빠른 배포가 장점이다.
주요 특징
- 격리 환경 제공: 애플리케이션 프로세스와 의존성을 독립적으로 격리.
- 경량화: OS 전체를 가상화하지 않고, 커널을 공유하여 리소스 효율 극대화.
- 이식성: 동일한 컨테이너 이미지를 어디서나 실행 가능.
- 이미지 기반 배포: Docker 이미지 등으로 버전 관리 및 배포 용이.
- 빠른 시작 및 종료: 가상머신 대비 훨씬 빠른 프로세스 실행 속도.
- 표준화: OCI(Open Container Initiative) 표준 준수.
장점
- 개발 환경 통일: 개발·테스트·운영 환경에서 동일하게 동작.
- 리소스 효율성: 가상머신 대비 적은 CPU·메모리 사용.
- 확장성: 클러스터 환경에서 손쉽게 수평 확장 가능.
- 자동화 친화: CI/CD, Kubernetes, Docker Swarm과 연계 용이.
- 배포 안정성: 환경 차이로 인한 “It works on my machine” 문제 해결.
관련 용어
- Docker: 가장 널리 사용되는 컨테이너 플랫폼.
- Image: 컨테이너 실행에 필요한 애플리케이션, 라이브러리, 설정을 포함한 패키지.
- Container Runtime: 컨테이너를 실제로 실행하는 엔진(Docker Engine, containerd 등).
- Orchestration: Kubernetes, Docker Swarm 등 컨테이너 클러스터 관리 기술.
- Pod: Kubernetes에서 하나 이상의 컨테이너를 그룹화한 실행 단위.
- OCI (Open Container Initiative): 컨테이너 표준을 정의하는 산업 표준 기구.
주요 솔루션 및 사용 사례
- 주요 솔루션
- Docker: 컨테이너 이미지 생성, 배포, 실행.
- containerd / CRI-O: 경량 컨테이너 런타임.
- Kubernetes: 컨테이너 오케스트레이션 및 자동화.
- Docker Compose: 여러 컨테이너를 정의하고 실행하는 도구.
- OpenShift / Rancher: 엔터프라이즈용 Kubernetes 기반 컨테이너 관리 플랫폼.
- 사용 사례
- 애플리케이션 배포: 개발 환경과 동일한 컨테이너 이미지로 안정적 배포.
- 마이크로서비스 아키텍처: 서비스 단위로 컨테이너 배포 및 관리.
- CI/CD 파이프라인: 컨테이너 기반 테스트, 빌드, 배포 자동화.
- 클라우드 네이티브 서비스: Kubernetes 클러스터에서 확장 가능하고 관리 용이한 서비스 운영.
- 멀티 클라우드 이식성: 동일한 컨테이너 이미지를 다양한 클라우드 환경에서 실행.










