[Docker] 도커란?

onlyJoon·2023년 8월 2일

도커

목록 보기
1/1
post-thumbnail

Docker

개요

  • 컨테이너 기반의 가상화 도구

공식문서

  • '컨테이너'라는 격리된 환경에서 애플리케이션을 패키징, 실행, 배포
  • 애플리케이션 개발, 전달, 실행을 위한 Open Platform
  • 애플리케이션을 인프라에서 분리 -> SW를 신속하게 제공
  • 인프라를 애플리케이션처럼 관리 가능
  • Docker Overview

격리된 환경?

  • 독립적인 자원 사용을 보장하는 환경
  • 환경 간 통신은 가능함

컨테이너(Container)

  • 가상화 기술의 한 종류
  • 애플리케이션을 격리, 실행, 배포하는 단위

가상화 기술

  • 하나의 물리적 컴퓨터 자원을 가상적으로 분할
  • 자원의 효율적 사용, 운영의 유연성과 안정성 제공
  • (Host) OS 위에 여러 개의 격리 환경을 생성 = 컨테이너
  • 컨테이너 안에서 애플리케이션을 실행함
  • GuestOS + Hypervisor = Container Engine
    • 중복된 자원 관리가 발생하게 되어 비효율적이었던 것을 해결하기 위함
    • Container Engine 중 가장 널리 쓰이는 것이 Docker Engine

      하이퍼바이저

      • 가상 머신을 생성 및 구동하는 SW
      • OS에 자원을 할당, 조율
      • OS의 요청을 번역하여 HW에 전달

구조

Docker Architecture

  • 클라이언트-서버 아키텍처를 사용

Docker 클라이언트

  • Docker Demon과 통신하는 역할
  • Docker 명령어를 Docker Demon에 보내 실행시킴

Docker 데몬(dockerd)

  • Docker Engine의 핵심 구성 요소
  • Docker API를 수신
  • Docker Host에서 Docker Object(이미지, 컨테이너, 네트워크 및 볼륨)를 관리

    Docker Object

    • Docker Image: 도커 컨테이너를 만들기 위한 읽기 전용 템플릿
    • Docker Container: 도커 이미지의 실행가능한 인스턴스. 애플리케이션 실행을 위한 모든 파일, 설정 정보를 포함

Docker 레지스트리

  • Docker Image를 관리, 저장하는 곳
  • Ex) DockerHub: 디폴트 레지스트리

  • 위의 이미처럼 'Docker Hub' - 'Docker Image' - 'Docker Container'를 이해하면 쉬움
profile
A smooth sea never made a skilled sailor

0개의 댓글