Docker 구조/동작 원리

2025. 6. 10. 10:24·virtual environment/Docker

1. 개요

Docker는 애플리케이션을 컨테이너 단위로 패키징하고 배포할 수 있는 오픈소스 플랫폼임.

동일한 환경을 여러 곳에서 재현 가능하게 하며, DevOps 및 마이크로서비스 아키텍처에서 핵심적인 역할을 수행함.

2. 도커의 기본 구조

Docker는 크게 다음과 같은 구성 요소로 이루어진다.

📌 호스트 운영체제 (Linux 기반)

Docker는 기본적으로 **Linux 커널 기능(Namespace, cgroup 등)**을 활용하여 격리된 컨테이너 환경을 구성. 따라서 도커 자체는 리눅스 환경에서 최적화되어 있으며, 컨테이너 내에서도 리눅스 바이너리 실행만 가능

💡 Windows나 macOS에서는 Docker Desktop을 통해 내부적으로 Linux VM을 구동하여 도커 환경을 제공

 

 

 

3. 동작 순서 (Workflow)

 

┌─────────────────────────────┐
│        Docker Client        │ ① ← 명령어 입력 (예: docker run ubuntu)
└─────────────────────────────┘
                │
                ▼
┌─────────────────────────────┐
│       Docker Daemon         │ ② ← Docker Client로부터 명령 수신
│     (dockerd, REST API)     │        → Docker Daemon으로 API 호출
│                             │     (이미지 관리, 컨테이너 관리)
└─────────────────────────────┘
      ▲               ▲
      │               │
      ▼               ▼
 ③ Registry          ④ 이미지를 기반으로 컨테이너 생성 및 실행
(Docker Hub 등)       ┌──────────────┐
 (이미지 pull/push)    │  Container   │ ⑤ ← 격리된 환경에서 애플리케이션 실행 
                      └──────────────┘     (호스트 커널 공유)   

 

3-1) 구성 요소별 역할

  1. Docker Client
    • 사용자가 도커 명령어(docker build, docker run, docker pull 등)를 입력하는 인터페이스 
    • 이 명령은 내부적으로 Docker Daemon(API 서버)에 전달됨
  2. Docker Daemon (dockerd)
    • Docker의 핵심 서비스로, 이미지 관리, 컨테이너 생성/실행/중단 등 모든 작업을 실제로 처리
    • 클라이언트로부터 명령을 수신하고 처리
    • 리눅스 시스템에서 항상 백그라운드로 실행 중
  3. Docker Host
    • 실제 컨테이너들이 구동되는 서버
    • Daemon이 설치된 물리적 혹은 가상 시스템 (Linux 환경이 대부분)
  4. Image
    • 컨테이너 실행을 위한 설치 패키지 형식의 정적 파일 
    • OS 종속적인 애플리케이션 실행 환경을 포함함 (예: Python, Node.js 런타임 등)
  5. Container
    • 이미지를 실행시켜 만들어진 격리된 실행 환경
    • 호스트 OS의 커널을 공유하지만, 독립적인 프로세스, 파일 시스템, 네트워크 공간을 가짐
  6. Docker Registry
    1. 도커 이미지를 저장/배포하는 원격 저장소
    2. 대표적으로 Docker Hub가 있으며, docker pull, docker push 명령어로 이미지 다운로드 및 업로드 가능
저작자표시 비영리 변경금지 (새창열림)

'virtual environment > Docker' 카테고리의 다른 글

Docker Volumes  (0) 2025.06.10
Dockerfile vs. Docker Hub  (0) 2025.06.10
Docker와 Virtual Machine의 차이  (0) 2025.06.09
Docker의 필요성  (0) 2025.06.06
Docker 용어 및 기능 정리  (0) 2025.06.06
'virtual environment/Docker' 카테고리의 다른 글
  • Docker Volumes
  • Dockerfile vs. Docker Hub
  • Docker와 Virtual Machine의 차이
  • Docker의 필요성
yoon-k
yoon-k
  • yoon-k
    To be || Not To be
    yoon-k
  • 전체
    오늘
    어제
    • 분류 전체보기 (84)
      • Study (13)
        • Linux (6)
        • Computer Vision (1)
        • Coursera - Deep Learning (4)
        • Mathematics For Machine Lea.. (2)
      • Programming (12)
        • Python (2)
        • ETC. (10)
      • virtual environment (44)
        • Docker (29)
        • conda (4)
        • Cloud (11)
      • Robotics (9)
        • Jetson (7)
        • ROS (2)
      • Upstage (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    vscode
    nvidia
    LLM
    GCP
    코세라
    Andrew Ng
    도커
    업스테이지
    Miniconda
    Anaconda
    redeem code
    딥러닝
    Jetson
    오린
    API
    futureofwork
    upstage
    Solar
    Installation
    docker
    Deep Learning
    cursor
    conda
    coursera
    ambassador
    claude
    OpenAI
    claude code
    google cloud platform
    ORiN
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
yoon-k
Docker 구조/동작 원리
상단으로

티스토리툴바