학습 내용

컨테이너란

  • 애플리케이션과 그 실행 환경을 하나로 패키징한 단위
  • 호스트 OS 커널을 공유하면서 프로세스를 격리하여 실행
  • VM보다 가볍고 빠르게 시작 가능

가상머신 vs 컨테이너

항목가상머신(VM)컨테이너
OS각 VM마다 Guest OS 포함호스트 OS 커널 공유
크기수 GB수 MB
시작 시간분 단위초 단위
격리 수준강함상대적으로 약함

컨테이너 이미지 생성 흐름

소스코드 작성 → Dockerfile 작성 → docker build → 이미지 생성
→ docker push → Docker Hub 업로드 → docker pull → 실행

멀티호스트 도커 플랫폼의 한계

단일 도커 호스트로 운영 시 문제:

  • 호스트 장애 시 전체 서비스 중단
  • 컨테이너 수동 배치 및 관리 필요
  • 스케일링 자동화 불가

컨테이너 오케스트레이션

여러 호스트에 걸쳐 컨테이너를 자동으로 배포/스케일링/관리하는 시스템

Kubernetes가 해결하는 것:

  • 자동 배포 및 롤링 업데이트
  • 셀프 힐링 (장애 컨테이너 자동 재시작)
  • 자동 스케일링
  • 서비스 디스커버리 및 로드밸런싱
  • 스토리지 오케스트레이션

실습

# 도커 기본 실습 (컨테이너 개념 확인)
docker pull smlinux/nodeinfo:v1
docker create --name app -p 80:8080 smlinux/nodeinfo:v1
docker start app
docker ps
curl localhost:80
docker rm -f app

체크리스트

  • 컨테이너와 VM의 차이 설명 가능
  • 컨테이너 이미지 생성 → push → pull → 실행 흐름 이해
  • 오케스트레이션이 필요한 이유 설명 가능

참고 링크