본문 바로가기

화상채팅 프로젝트/Docker

[Docker 입문] 도커란 무엇인가? 컨테이너 개념까지 쉽게 정리

1. Docker란 무엇인가?

Docker애플리케이션을 컨테이너라는 단위로 패키징하고, 배포하고, 실행하는 플랫폼입니다.

기존의 가상 머신(VM) 방식과는 다르게, 운영체제 전체를 가상화하지 않고
필요한 실행 환경만 격리하여 훨씬 가볍고 빠르게 실행할 수 있는 기술입니다.


2. 컨테이너(Container)란?

컨테이너는 애플리케이션 실행에 필요한 모든 것을 하나로 묶은 독립 실행 환경입니다.
이 안에는 다음과 같은 요소들이 포함됩니다:

  • 애플리케이션 코드
  • 라이브러리 및 종속 패키지
  • 설정 파일
  • 런타임 환경

즉, 컨테이너 하나만 있으면 어느 컴퓨터에서든 동일하게 실행할 수 있게 되는 것이죠.

💡 예시:

  • Python 애플리케이션을 실행하려면 보통 Python이 설치되어 있어야 하고,
    버전도 맞춰야 하고, 필요한 패키지도 설치해야 합니다.
  • 하지만 Docker 컨테이너 안에 모든 것을 다 포함시켜놓으면
    어디서든 같은 환경에서 실행할 수 있습니다. (Python 설치 여부 무관)

3. VM과 컨테이너의 차이

항목 가상 머신 (VM) 컨테이너
실행 단위 전체 OS 포함 애플리케이션 및 종속성만 포함
크기 수 GB 이상 수 MB ~ 수백 MB
부팅 속도 수십 초 ~ 수분 수 초 내외
자원 소비 높음 (중복된 OS) 적음 (호스트 커널 공유)
격리 수준 강력함 (전체 가상화) 가벼운 격리 (OS 커널 공유)

4. Docker를 사용하는 이유

  1. 환경 일치: 개발, 테스트, 배포 환경을 동일하게 유지 가능
  2. 이식성: OS에 상관없이 어디서든 실행 가능 (Windows, Linux, macOS 등)
  3. 확장성: 여러 컨테이너를 오케스트레이션 도구(Kubernetes 등)로 관리 가능
  4. 경량화: VM보다 훨씬 가볍고 빠르게 실행 가능
  5. 자동화: CI/CD 파이프라인과 연동하여 자동 테스트 및 배포 가능