실버를 위한 코딩

도커(Docker)와 쿠버네티스(Kubernetes)

forSilver 2025. 8. 11. 16:47
반응형

도커(Docker)와 쿠버네티스(Kubernetes)는 둘 다 컨테이너 기술과 관련이 있지만, 역할과 범위가 분명히 다릅니다.
한 문장으로 요약하면,

도커는 “컨테이너를 만드는 도구”, 쿠버네티스는 “그 컨테이너들을 대규모로 관리·운영하는 도구”입니다.


1. 도커(Docker) — 컨테이너 생성·실행 도구

  • 정의
    애플리케이션과 그 실행 환경(라이브러리, 설정 파일 등)을 하나의 패키지(이미지)로 묶어,
    운영체제에 상관없이 동일하게 실행할 수 있도록 해주는 컨테이너 가상화 플랫폼입니다.
  • 주요 기능
    1. 이미지 빌드: Dockerfile로 애플리케이션 실행 환경 정의
    2. 컨테이너 실행: 빌드한 이미지를 기반으로 프로세스 실행
    3. 개별 관리: 각 컨테이너를 수동으로 시작·중지·삭제
    4. 개발 환경 표준화: 로컬, 서버, 클라우드 어디서나 동일 실행
  • 한계
    • 수십~수백 개의 컨테이너를 직접 관리하기 어려움
    • 컨테이너 장애 발생 시 자동 복구 불가능
    • 로드밸런싱, 서비스 디스커버리 등 운영 기능 부족

2. 쿠버네티스(Kubernetes) — 컨테이너 오케스트레이션 플랫폼

  • 정의
    수많은 컨테이너를 여러 서버(Node)에 분산 배치하고,
    자동으로 배포·확장·복구하는 오케스트레이션(자동 조율) 시스템입니다.
  • 주요 기능
    1. 자동 배포: 선언형 설정(YAML)으로 원하는 상태 정의
    2. 스케일링: 부하에 따라 컨테이너 수 자동 조절
    3. 자가 복구: 장애가 난 컨테이너 자동 재시작/재배치
    4. 서비스 디스커버리/로드밸런싱: Pod 간 네트워크 연결 관리
    5. 환경 구성 관리: ConfigMap, Secret으로 환경 변수·민감정보 관리
  • 특징
    • 컨테이너 런타임으로 도커를 사용할 수 있지만, 다른 런타임도 지원(containerd 등)
    • 운영환경의 안정성과 확장성을 보장

3. 핵심 비교

구분 도커(Docker)  쿠버네티스(Kubernetes)
역할 컨테이너 생성·실행 컨테이너 집합의 배포·운영·관리
단위 개별 컨테이너 Pod(컨테이너 그룹), Node, Cluster
사용 범위 개발·테스트·소규모 배포 대규모 서비스 운영
자동화 수준 낮음(수동 관리) 높음(자동 스케일링, 자가 복구)
필수 관계 단독 사용 가능 컨테이너 런타임 필요(도커 등)


💡 비유로 이해하기

  • 도커 = “화물을 담는 표준 컨테이너 박스”
  • 쿠버네티스 = “전 세계 항구에서 컨테이너를 자동 분류·운송·배치하는 물류 시스템”