01. Container vs Docker
1. 컨테이너 (Container)
컨테이너란 운영체제 환경에서 리눅스 커널의 기능을 활용하여 프로세스를 격리하는 가상화 기술을 의미한다. 즉, 컨네이너 내부에서 실행되는 애플리케이션은 마치 독립된 OS 위에서 실행되는 것처럼 보이지만, 실제로는 호스트 OS를 공유하고 있는 기술을 뜻한다. OS를 전체를 가상화하는 가상 머신(Virtual Machine)과 달리 필요한 자원만 격리하여 가볍고 빠르다는 특징이 있다.
2. 도커 (Docker)
도커(Docker)란 컨테이너 기술을 손쉽게 사용할 수 있도록 만들어진 오픈소스 플랫폼을 의미한다. 즉, 개발자가 만든 애플리케이션을 빠르게 배포 및 실행할 수 있도록, 컨테이너 기술을 사용자 친화적으로 포장한 도구를 뜻한다. 이러한 도커는 컨테이너를 실행하기 위한 정적 실행 패키지인 이미지(Image)라는 개념을 도입하여, 어디서든 똑같은 환경을 복제할 수 있게끔 만들었다.
3. 도커 외의 컨테이너 기술 도구
| 도커 외의 도구 | |
| Podman | 도커와 유사하지만, 중앙 관리자(Daemon)이 없는 도구로 보안에 유리 |
| containerd | 도커 내부 핵심 기술이 독립한 것으로, 주로 쿠버네티스에서 사용 |
| CRI-O | 쿠버네티스 최적화 엔진 |
02. 컨테이너 오케스트레이션 (Container Orchestration)
컨테이너 오케스트레이션이란 수천 개의 컨테이너가 모인 클러스터 전체를 관리하는 지휘자로서, 수많은 컨테이너의 배치 / 관리 / 확장 / 네트워킹을 자동화하는 역할을 수행한다. 즉, 한 대의 서버에 최적화 되어있는 도커의 한계점을 해결하기 위한 수단이다.
| 해결 문제 | |
| 자동 확장 (Auto-Scaling) |
CPU 점유율이 80% 초과 시, 자동으로 컨테이너를 확장 |
| 자가 복구 (Self-Healing) |
특정 컨테이너 서버 다운 시, 정상적인 다른 서버를 찾아 즉시 새 컨테이너를 실행 |
| 선언적 인프라 (Declarative Infrastructure) |
목표 상태를 문서(YAML)에 적어, 문서와 실제 서버 상태를 동일시함 |
'[Codeit] > Spring 백엔드 10기 위클리페이퍼' 카테고리의 다른 글
| [13] 인증(Authentication)과 인가(Authorization) (0) | 2026.05.20 |
|---|---|
| [12] AWS의 RDS와 Github Actions (0) | 2026.05.13 |
| [10] 계층별 입력값 검증과 Mockito (0) | 2026.04.06 |
| [09] JPA의 N+1 문제, 그리고 트랜잭션의 ACID (0) | 2026.04.06 |
| [08] DDL과 DML, 그리고 역정규화 (0) | 2026.04.05 |