DevOps./Docker

[Docker] 컨테이너 가상화

PI.314 2022. 1. 28. 18:00

가상화(Virtualization)

  • 물리적인 컴퓨터리소스를 다른 시스템이나 애플리케이션에서 사용할 수 있도록 제공
    • 플랫폼 가상화
    • 리소스 가상화

하이퍼바이저 (Hypervisor)

  • Virtual Machine Manager(VMM)
  • 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼
  • Type 1: Native or Bare-metal
  • Type 2: Hosted

OS Virtualization

  • Host OS 위에 Guest OS 전체를 가상화
  • VMWare, VirtualBox
  • 자유도가 높으나, 시스템에 부하가 많고 느려짐

Container Virtualization

  • Host OS가 가진 리소스를 적게 사용하며, 필요한 프로세스 실행
  • 최소한의 라이브러리와 도구만 포함
  • Container의 생산 속도 빠름

Container Image

  • Container 실행에 필요한 설정 값
    • 상태값 x, Immutable(불변)
  • Image를 가지고 실체화 -> Container
  • 이미지가 저장되는 저장소 -> Docker hub
  • 이미지를 사용할 수 있는 컨테이너 서버 -> Docker Host
    • Local Registry를 가지고 있음
    • 각 이미지가 가진 설정에 맞는 컨테이너를 생성 해 사용 할 수 있음공개된 포트를 통해 외부에서 그 포트를 사용해 서비스를 사용 할 수 있음

Dockerfile

  • Docker Image를 생성하기 위한 스크립트 파일
  • 자체 DSL(Domain-Specific language) 언어 사용 -> 이미지 생성과정 기술
  • 커맨드 명령어(FROM, ENV, ADD, EXPOSE, CMD 등) 의 구성을 가지고 있음