Untitled

도커(Docker)는 컨테이너 기반의 가상화 플랫폼입니다. 도커는 다음과 같은 구성 요소로 이루어져 있습니다.

  1. 도커 엔진(Docker Engine) 도커의 핵심 역할을 수행하는 구성 요소로서, 컨테이너 생성, 실행, 관리 등의 작업을 수행합니다. 도커 엔진은 CLI(Command Line Interface)와 API(Application Programming Interface)를 통해 도커를 제어할 수 있습니다.

  2. 도커 데몬(Docker Daemon)

    1. 도커 API 서버 도커 데몬은 도커 API 서버를 제공합니다. 도커 API는 HTTP RESTful API로 제공되며, 클라이언트는 도커 API를 통해 도커 데몬과 통신합니다.
    2. 이미지 관리 도커 데몬은 도커 이미지를 관리합니다. 도커 이미지는 Dockerfile을 통해 빌드되며, 도커 데몬은 이미지를 다운로드하고 저장합니다.
    3. 컨테이너 관리 도커 데몬은 도커 컨테이너를 생성, 실행, 중지, 삭제하는 등의 작업을 수행합니다. 또한, 도커 데몬은 컨테이너 간의 네트워크 연결을 관리하며, 컨테이너의 로그를 수집하고 관리합니다.
    4. 저장소 관리 도커 데몬은 도커 이미지와 컨테이너의 파일 시스템을 저장하고 관리합니다. 도커 데몬은 호스트 OS의 파일 시스템과 별개로 독립적인 파일 시스템을 제공하며, 컨테이너 간에 파일 시스템을 공유할 수 있습니다.
    5. 보안 관리 도커 데몬은 컨테이너 간의 격리를 제공하며, 호스트 OS와의 격리도 제공합니다. 또한, 도커 데몬은 보안 기능을 제공하여 컨테이너의 안전성을 보장합니다.
    6. 네트워크 관리 도커 데몬은 컨테이너 간의 네트워크 연결을 관리합니다. 도커 데몬은 컨테이너 간에 가상 네트워크를 생성하여 컨테이너 간의 통신을 가능하게 합니다. 또한, 호스트 OS와 컨테이너 간의 네트워크 연결도 가능합니다.
  3. 도커 클라이언트(Docker Client)

    1. 도커 커맨드 라인 인터페이스(CLI) 도커 클라이언트는 커맨드 라인 인터페이스(CLI)를 제공합니다. 사용자는 CLI를 사용하여 도커 데몬과 상호작용할 수 있습니다. CLI를 사용하여 도커 이미지를 다운로드하고, 컨테이너를 생성하고 실행하며, 도커 데몬과 통신할 수 있습니다.
    2. 도커 호스트 연결 도커 클라이언트는 도커 데몬과 연결합니다. 사용자는 클라이언트를 사용하여 로컬 또는 원격 도커 데몬에 연결할 수 있습니다.
    3. 이미지 관리 도커 클라이언트는 도커 이미지를 관리합니다. 사용자는 CLI를 사용하여 이미지를 다운로드하고, 업로드하고, 빌드할 수 있습니다.
    4. 컨테이너 관리 도커 클라이언트는 도커 컨테이너를 생성, 실행, 중지, 삭제하는 등의 작업을 수행합니다. 사용자는 CLI를 사용하여 컨테이너를 관리할 수 있습니다.
    5. 네트워크 관리 도커 클라이언트는 도커 네트워크를 관리합니다. 사용자는 CLI를 사용하여 가상 네트워크를 생성하고, 컨테이너를 네트워크에 연결하고, 네트워크를 삭제할 수 있습니다.
    6. 데이터 볼륨 관리 도커 클라이언트는 도커 데이터 볼륨을 관리합니다. 사용자는 CLI를 사용하여 데이터 볼륨을 생성하고, 삭제하고, 볼륨을 컨테이너에 연결할 수 있습니다.
  4. 도커 이미지(Docker Image) 컨테이너를 생성하기 위한 뼈대입니다. 컨테이너를 생성하는데 필요한 파일 시스템과 실행할 명령어 등을 포함하고 있습니다. 도커 이미지는 불변성을 가지며, 이미지를 수정하면 새로운 버전의 이미지가 생성됩니다.

  5. 도커 컨테이너(Docker Container) 도커 이미지를 기반으로 생성되는 실행 중인 인스턴스입니다. 컨테이너는 격리된 환경에서 실행되며, 컨테이너 간의 상호작용이나 호스트와의 상호작용을 위한 네트워크 및 저장소를 가질 수 있습니다.

  6. 도커 레지스트리(Docker Registry) 도커 이미지를 저장하고 공유하기 위한 저장소입니다. 도커 허브(Docker Hub)와 같은 공개적인 레지스트리뿐만 아니라, 개인적인 레지스트리를 운영할 수도 있습니다.

  7. 도커 컴포즈(Docker Compose) 다중 컨테이너 애플리케이션을 정의하고 실행하기 위한 도구입니다. YAML 파일로 정의되며, 여러 개의 도커 컨테이너를 하나의 애플리케이션으로 구성할 수 있습니다.

  8. 도커 스웜(Docker Swarm) 도커 컨테이너를 클러스터로 구성하여 다중 호스트에서 컨테이너를 관리할 수 있는 도구입니다. 도커 스웜은 여러 개의 도커 호스트를 하나의 가상 호스트로 묶어서 애플리케이션을 관리할 수 있습니다.