Docker

[Docker] 도커 개념 정리

예롱메롱 2025. 3. 17. 22:13
728x90
반응형

🐳 도커(Docker)란?

도커(Docker)는 리눅스 컨테이너 기술을 기반으로 애플리케이션을 보다 쉽고 효율적으로 실행 및 관리할 수 있도록 도와주는 오픈 소스 플랫폼입니다.

도커는 **도커 엔진(Docker Engine)**을 중심으로 동작하며, 이 엔진이 컨테이너의 생성과 제어를 담당하는 도커 생태계의 핵심입니다.

✅ 도커의 핵심 개념

  • 가상화(Virtualization): 하나의 물리 서버에서 여러 개의 가상 머신을 생성해 자원을 효율적으로 활용하는 기술
  • 컨테이너(Container): 호스트 OS의 커널을 공유하면서, 격리된 실행 환경을 제공하는 기술

요약: 도커는 격리된 독립 환경을 제공하여 하드웨어 자원을 효율적으로 사용하는 기술입니다.


⚒️ Virtual Machine vs Docker Container

💡 기존의 가상머신(Virtual Machine)

 

  • 하이퍼바이저(Hypervisor)를 통해 게스트 OS를 생성
  • 각 가상머신은 완전한 운영체제(ex. Ubuntu, CentOS)를 포함
  • VM 툴: VirtualBox, VMware 등
  • 단점:
    • 하이퍼바이저를 통한 자원 관리로 성능 손실 발생
    • OS 전체를 포함하므로 이미지 용량이 큼 (수 GB)

 

💡 도커 컨테이너(Docker Container)

  • 리눅스의 namespace, cgroup, chroot 등을 사용해 프로세스 단위 격리
  • 커널 공유로 성능 손실 최소화
  • 컨테이너에는 필요한 라이브러리와 실행파일만 포함, 이미지 용량이 작음
  • 이미지 배포가 빠르고 효율적이며, 가상화에 따른 성능 손실 거의 없음

비유:

  • 가상머신 = 무겁지만 완전한 운영체제
  • 컨테이너 = 가볍고 빠른 애플리케이션 실행 환경

⚙️ 도커 구성요소

구성 요소  설명
Docker Client 사용자가 도커 명령어를 입력하는 클라이언트 (build, pull, run 등)
Docker Host 도커가 설치되어 있는 서버, 컨테이너와 이미지를 실행/관리
Docker Daemon 도커 엔진으로, 실제 컨테이너를 생성하고 실행하는 역할
Registry 이미지 저장소 (Public: Docker Hub, Private: AWS ECR 등)

🧱 도커 이미지 vs 도커 컨테이너

 

 

🧩 도커 이미지

  • 컨테이너 생성을 위한 읽기 전용 템플릿
  • 가상 머신의 iso 파일과 유사
  • 다중 계층 구조의 바이너리 파일
  • 기본 형태: [저장소]/[이미지 이름]:[태그]
    • 저장소: 이미지 위치 (없으면 Docker Hub로 간주)
    • 이미지 이름: 역할 설명
    • 태그: 버전 정보 (없으면 latest)

🚀 도커 컨테이너

  • 도커 이미지를 run 명령어로 실행해 생성
  • 컨테이너는 독립된 파일 시스템과 자원을 가진 격리 환경
  • 동일 이미지로 여러 컨테이너 생성 가능 (1:N 관계)
  • 이미지 ↔ 컨테이너 관계 비유:
    • 프로그램 ↔ 프로세스
    • 클래스 ↔ 인스턴스

컨테이너는 원본 이미지에 영향을 주지 않고, 변경 사항은 컨테이너 계층에만 저장됩니다.
즉, A 컨테이너에서 변경해도 B 컨테이너나 이미지에는 영향 없음.

 

 

728x90
반응형