본문 바로가기
Study/Docker&Kubernetes

[Docker] 기본 개념

by kimdaepa 2026. 2. 9.

개념

  • 컨테이너를 생성하고 관리하기 위한 도구
    • 소프트웨어 개발에서의 컨테이너란?
      • 표준화된 소프트웨어 유닛
      • 코드 패키지
      • 해당 코드를 실행하는데 필요한 종속성과 도구가 포함
      • standalone으로 작동

VM(Virtual Machines)

  • 하나의 물리적인 컴퓨터 안에서 또 다른 ‘가상의 컴퓨터’를 소프트웨어로 만들어 실행하는 기술
  • 이 안에는 Virtual OS(가상 운영 체제)가 존재

장점

  1. 분리된 환경 생성
  2. 그 안에 환경별 구성을 가질 수 있음
  3. 모든 것을 안정적으로 공유, 재생산 가능

단점

  1. 중복으로 인해 낭비되는 공간 발생
  2. 성능 저하
  3. 재생산 및 공유가 가능하지만, 원하는 모든 시스템에 그 VM을 설정하고, 동일한 방식으로 구성해야 함. 즉, 공유할 수 있는 단일 구성 파일이 없음

⇒ 컨테이너가 VM보다 더 나은 방식으로 문제를 해결 할 수 있게 도커가 도와줌

컨테이너

  • 운영 체제가 기본적으로 내재하고 있거나 컨테이너 Emulate를 지원하는 내장 컨테이너를 활용
  • 도커는 이것이 작동하도록 처리해줌.
    • Emulate
      • 원래 존재하는 다른 하드웨어나 시스템을 흉내 내서 그대로 재현하는 것
  • 그 후, 위에 도커 엔진이라는 도구를 실행하고 이를 기반으로 컨테이너를 실행

장점

  • 구성 파일을 사용하여 컨테이너를 구성하고, 설명할 수 있음
    • 이를 공유하여 다른 사람이 컨테이너를 다시 만들 수 있게 가능
    • 이미지에 빌드한 후 공유하여, 모든 사람이 자신의 시스템에서 동일한 컨테이너를 시작할 수 있게 할 수 있음

비교

  • 컨테이너
    • 운영 체제와 시스템에 미치는 영향이 적음, 매우 빠름, 최소한의 디스크 사용
    • 이미지와 구성 파일로 공유, 재구축 및 배포가 쉽게 가능
    • 앱 구축에 있어 필요한 환경만 캡슐화
  • VM
    • 속도 느림, 디스크 공간 매우 많이 차지
    • 공유, 재구축, 배포 모두 수행 가능하지만 까다로움
    • 환경 또한 캡슐화, 하지만 필수적이지 않은 것까지 포함

'Study > Docker&Kubernetes' 카테고리의 다른 글

[Docker] .dockerignore&.env&ARG 작업  (0) 2026.03.03
[Docker] Volume  (0) 2026.03.03
[Docker] Docker Hub  (0) 2026.02.20
[Docker] 이미지와 컨테이너  (0) 2026.02.12
[Docker] Dockerfile 작성 및 명령어  (1) 2026.02.12