Docker Platform

Docker는 application을 host별 설치 상태와 분리해 build·run·share하는 container platform이다. "VM보다 가벼운 실행 파일"로만 이해하면 image build, runtime isolation, data persistence라는 서로 다른 책임을 한 덩어리로 섞기 쉽다. 이 page는 그 세 책임을 어디서 나눠야 하는지 정리한다.

아키텍처: client가 daemon에 요청하고 daemon이 object를 관리한다

flowchart LR
    C[Docker client / Compose] -->|API request| D[Docker daemon]
    D --> I[Image]
    D --> R[Registry]
    D --> CT[Container]
    CT --> N[Network]
    CT --> V[Volume]

image는 배포 입력, container는 그 입력의 실행 인스턴스다

Docker 공식 학습 경로 자체가 이 구분을 따른다: container/image/registry/Compose를 "기초"로, Dockerfile·build cache·multi-stage build를 "image building"으로, port publishing·persistent data·multi-container application을 "running container"로 별도 묶음에 둔다.[4]

Compose는 multi-container application의 선언 모델이다

적용 범위와 경계

실패 모드

관련

출처

테스트 질문


  1. docker-overview.md — "The Docker client and daemon can run on the same system, or you can connect a Docker client to a remote Docker daemon. The Docker client and daemon communicate using a REST API, over UNIX sockets or a network interface." ↩︎

  2. docker-overview.md — "The Docker daemon (dockerd) listens for Docker API requests and manages Docker objects such as images, containers, networks, and volumes." ↩︎

  3. docker-overview.md — "An image is a read-only template with instructions for creating a Docker container... Each instruction in a Dockerfile creates a layer in the image. When you change the Dockerfile and rebuild the image, only those layers which have changed are rebuilt." / "A container is a runnable instance of an image." ↩︎

  4. docker-concepts-and-workflows.md — The basics / Building images / Running containers 섹션 구성 ↩︎

  5. docker-compose-application-model.md — "Computing components of an application are defined as services... Services communicate with each other through networks... Services store and share persistent data into volumes." ↩︎