컨테이너 기술
컨테이너를 이해하려면 기존 서버 → VM → 컨테이너 순서로 알아야 합니다.

1. 기존 서버
하나의 OS 위에 여러 App 실행
문제: App1 메모리 폭주 → App2까지 느려짐
2. 가상머신(VM)
- 기존 서버의 문제점을 개선
- OS → 하이퍼바이저 → Guest OS별로 App 격리
문제: 용량을 많이 차지한다. OS 여러 개 → 용량 GB 단위
개념 등장 년도
- 1964-67: IBM CP-40/CP-67 (최초 하이퍼바이저 개념)
- 1972: IBM VM/370 (상용화)
- 1999: x86 VM (VMware)
3. 컨테이너 기술
- 기존 가상머신의 문제점을 개선
- OS를 각각 가지지 않고 공유함
장점:
- 용량 MB 단위
- 시작 초 단위
- 서버 밀도 2-3배
개념 등장 년도
- 1979: chroot (격리 기반)
- 2000: FreeBSD Jai
- 2004: Solaris Zones
- 2006: cgroups (Google)
- 2008: LXC (Linux Containers 완성형)
의문점
하나의 OS를 공유하면 기본 Server와 다를게 없지 않나?
→ Container Runtime이 각각의 컨테이너에 할당된 메모리 등을 컨트롤함
4. 컨테이너 기술을 이용하는 Tool
대표 도구들
- Docker: 가장 인기있는 컨테이너 도구.
docker run한줄로 실행 - Podman: Docker와 동일 명령어 사용, 루트리스(rootless)로 보안↑
- Containerd: Docker의 핵심 엔진. Kubernetes에서 많이 사용
- CRI-O: Kubernetes 전용 경량 런타임
- Buildah: 컨테이너 이미지 빌드 전문 도구
Docker
- 2013.3: 최초 발표 (PyCon)
- 2014.6: 정식 출시
- 도커 이전에 컨테이너 기술이 존재했고 둘이 다름을 알아야함
어떤 걸 써야 할까?
개발/학습 → Docker
보안중요 → Podman
Kubernetes → Containerd/CRI-O
빌드만 → Buildah
Docker로 시작 → 필요시 다른 도구로 전환 추천
5. 컨테이너 오케스트레이션
수백 개의 컨테이너를 자동 관리하는 기술
대표 도구: Kubernetes(K8s)
도커 단독사용에 대한 문제점을 해결해주는 컨테이너 오케스트레이션
| 상황 | Docker 단독 | 오케스트레이션 |
| 서버 1대, App 1개 | 간단✅ | 과잉❌ |
| 서버 10대, App 100개 | 수동 관리 (밤새 명령어 실행) ❌ | 자동화✅ |
자동 확장:
트래픽 폭주시 도커 단독사용하면 폭주 하는 컨테이너 마다 명령어 실행을 해주어야 한다.
→ 컨테이너 오케스트레이션이 자동으로 컨테이너를 늘려준다.
자가 복구:
도커의 컨테이너가 죽는다면 죽은 컨테이너마다 수동으로 재시작을 해주어야한다.
→ 자동으로 재시작해준다.
선언적 인프라
도커만 실행시 원하는 상태를 맞추기 위해 여러 명령어를 다 실행해주어야 한다.
→ 원하는 상태만 정해주면 알아서 명령러 처리 해준다.
📝 Docker로 실행, K8s로 운영을 한다고 생각하자.
'네트워크' 카테고리의 다른 글
| [AWS] RDS의 이점 (0) | 2026.02.15 |
|---|---|
| [네트워크] SOAP과 REST의 차이 (0) | 2025.12.30 |
| [OSI] 4계층 - 전송 계층 (Transport Layer) (0) | 2025.12.23 |
| [OSI] 3계층 - 네트워크 계층 (Network Layer) (0) | 2025.12.23 |
| [OSI] 2계층 - 데이터 링크 계층(Data Link Layer) (0) | 2025.12.22 |