yoongrammer

Docker 알아보기 본문

Infra/Docker

Docker 알아보기

yoongrammer 2020. 12. 20. 00:34
728x90

목차

    Docker 알아보기


    Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다.

    Docker는 go 언어로 작성되었으며 다음과 같은 Linux 커널의 기능을 활용해 만들어졌습니다.

    • namespaces
    • cgroups
    • Union file systems

    docker는 OS를 가상화하는 방식이 아닌 프로세스를 격리하는 방식(Container)을 사용해 가상화보다 더 가볍고 빠릅니다.

     

    가상화 머신(Virtual Machine)

    • OS를 설치한 가상머신 이미지를 만들어 배포를 편하게 합니다.
    • OS를 설치해야 하기 때문에 무겁고 성능이 좋지 못한 것이 단점입니다.
    • 전가상화(Full Virtualization)의 느린 속도를 개선하기 위해 반가상화(Paravirtualization)방식이 개발되었지만 OS를 설치하여 가상화하는 방법은 성능문제가 있습니다.

    도커(Docker)

    • 반가상화보다 좀 더 경량화된 프로세스를 격리하는 방식입니다.
    • OS를 설치하지 않고 프로세스를 격리시키는 방식이기 때문에 가볍고 성능이 빠릅니다.
    • OS를 설치하지 않기 때문에 이미지 용량이 크게 줄어들고, 하드웨어를 가상화하는 계층이 없기 때문에 메모리 접근, 파일시스템, 네트워크 속도가 가상 머신에 비해 월등히 빠릅니다.

    Docker engine


    docker engine은 다음 같은 주요 구성 요소가 포함된 클라이언트-서버 애플리케이션입니다.

    • docker daemon
    • REST API
    • command line interface(CLI)

    CLIREST API를 사용하여 docker daemon과 상호작용하고 docker daemon은 이미지, 컨테이너, 네트워크 및 볼륨과 같은 docker 객체를 생성하고 관리합니다.

    Docker 아키텍처


    Docker는 클라이언트-서버 아키텍처를 사용합니다.

     

    Docker daemon

    Docker 데몬(dockerd)Docker API 요청을 수신하고 이미지, 컨테이너, 네트워크볼륨과 같은 Docker 객체를 관리합니다.

    Docker client

    Docker 클라이언트 (docker)는 사용자가 docker명령을 사용하여 dockerd와 통신을 합니다.

    예를 들어 docker run 같은 명령을 수행하면 클라이언트가 이 명령을 dockerd에 전송하여 실행합니다.

    Docker registry

    Docker 레지스트리는 Docker 이미지를 저장합니다. Docker Hub는 누구나 사용할 수 있는 공용 레지스트리이며 Docker는 기본적으로 Docker Hub에서 이미지를 찾도록 구성됩니다.

    docker pull 또는 docker run명령을 사용하면 구성된 레지스트리에서 필수 이미지를 가져옵니다.

    docker push명령을 사용하면 이미지가 구성된 레지스트리로 푸시됩니다.

    Image

    이미지는 컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있는 읽기 전용 템플릿입니다.

    이미지 생성에 필요한 명령어 및 설정을 저장하고 있는 Dockerfile을 사용하여 이미지를 빌드합니다.

    Dockerfile의 각 명령어는 이미지 레이어를 만듭니다.

    만약에 Dockerfile을 변경하고 이미지를 다시 빌드하면 변경된 레이어만 다시 빌드하기 때문에 가볍고 빠르게 빌드할 수 있습니다.

    Container

    컨테이너는 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 애플리케이션이 빠르고 안정적으로 실행되도록 코드와 모든 종속성을 패키징 하는 소프트웨어의 표준 단위입니다.

    이미지Docker Engine에서 실행하면 컨테이너가 됩니다.

    Docker API 또는 CLI를 사용하여 컨테이너를 생성, 시작, 중지, 이동 또는 삭제할 수 있습니다.

     

     

    참고: docs.docker.com/get-started/overview/

    728x90

    'Infra > Docker' 카테고리의 다른 글

    Docker 사용하기  (0) 2021.01.03
    Docker 설치하기  (0) 2020.12.21
    Comments