Docker

영슈·2023년 1월 31일
0

Docker

목록 보기
1/1

가상화란

  • 단일 컴퓨터의 HW 요소를 다수의 가상 컴퓨터로 분할 하는 기술

가상화 이전 단계

  • O.S 는 특권 명령 ( privileged instruction ) 때문에 H.W System 당 하나밖에 돌아갈 수 없음
    => 특권 명령 : System 요소들과 소통할 수 있는 명령 , OS만 가능
  • 가상화가 나타나기 전까진 하나의 O.S만 실행 가능했음
    => O.S가 HW에 설치된 상태(Bare-Metal)로만 운영 가능

가상화의 역사

1세대 : 완전 가상화

  • 모든 System 요소가 Emulator 안에서 돌아 감
  • CPU , Harddisk , Motherboard 등 모든 요소 구현해 O.S와 연동
  • 매우 느림

2세대 : Paravirtualization

  • GuestOS는 Hypervisor 와 통신한다.
    => O.S 와 H.W 사이 존재하는 Virtual Manager
  • 속도는 1세대에 비해 향상
    => 그러나, 여전히 Emulator가 필요함 = 느림

3세대 : Hardware Virtual Machine (HVM)

  • H.W에서 직접 가상화 지원
  • 직접 H.W 와 통신 = 빠른 속도 ( Near-Bear-Metal )

AWS는 이미 구축된 가상화 가능한 서버의 한 부분을 할당해 주는 것

( 돌고있는 서버를 가상화해서 사용자에게 제공 )

Container

  • 가상화 기술
  • O.S레벨 가상화로 Process를 격리시켜 동작하는 방식
    => 기존 VM 방식은 Host O.S 위에 Guest O.S 전체를 가상화 하여 사용한 방식
  • Application 실행에 필요한 Binary만 올린다.
  • Host O.S가 사용하는 자원을 분리

Docker 란

  • Go 언어로 작성된 Linux Container 기반 Opensource Virtual Platform 이다.
  • 간단한 명령으로 Container Image 생성 가능
  • Host 에 Container Image를 Download 해서 Container 실행 가능

Container Image

  • Container 실행할 수 있는 실행 파일 , 설정값 을 가지고 있다.
  • 상태값이 없으며 ( Stateless ) + 변하지 않는다 ( Immutable )
  • 의존성 File 및 새 File 들 설치할 필요가 없다.

0개의 댓글