[Docker] 도커 개요

Parker cho·2022년 5월 17일
0

도커

목록 보기
1/4
post-thumbnail

도커란 무엇인가?

  • 애플리케이션을 컨테이너로 좀 더 쉽게 사용 할 수 있게 함
  • Go 언어로 작성되었으며 2013년 3월에 릴리즈 된 이후 지금까지 꾸준히 개발됨

가상 머신과 도커 컨테이너

기존 가상화

  • 하이퍼바이저를 이용해 여러 개의 운영체제를 하나의 호스트에서 생성해 사용함
  • 하이퍼바이저에 의해 생성되고 관리되는 운영체제를 게스트 OS 라 함
  • 일반 호스트에 비해 성능 손실이 있음

Docker 가상화

  • 가상 공간을 생성하기 위해 리눅스 자체 기능인 cgroup, croot, namespace 를 사용
  • 프로세스 단위의 격리 환경을 만들기 때문에 성능손실이 거의 없음
  • 애플리케이션을 구동하는 데 필요한 라이브러리 및 실행 파일만 존재하기 때문에 컨테이너를 이미지로 만들었을 때 이미지의 용량 또한 가상머신에 비해 대폭 줄어듦

도커를 사용해야 하는 이유

  • 애플리케이션의 개발과 배포가 편해짐
  • 여러 애플리케이션의 독립성과 확장성이 높아짐

모놀리스 아키텍처 (Monolith)

  • 여러 모듈이 상호작용하는 로직을 하나의 프로그램 내에서 구동
  • 소규모 서비스에서 사용하기 좋음
  • 확장성과 유연성이 떨어짐

마이크로 서비스 아키텍처 (Micro-service)

  • 여러 모듈을 독립된 형태로 구성하기 때문에 언어에 종속되지 않고 변화에 빠르게 대응할 수 있음
  • 컨테이너는 여러 모듈에게 독립된 환경을 빠른 시간 내에 제공 할 수 있기 때문에 마이크로 서비스에서 가장 많이 사용되고 있는 가상화 기술임

도커 엔진

  • 맥은 xhyve 기술을 윈도우는 Hyper-V 기술을 활용해 가상화 엔진을 구축함
  • 도커 엔진은 크게 두가지 종류 (CE, EE) 로 나뉨

EE (Docker Enterprise Edition)

  • 유료로 제공되는 기업용 솔루션
  • 각종 부가 기능들을 도커 엔진과 함께 제공함
  • 3개월 마다 안정화된 버전으로 릴리즈 됨

CE (Docker Community Edition)

  • 무료로 제공되는 도커 엔진
  • 별도의 기술 지원 및 서비스 제공 X
  • 도커 엔진 자체의 핵심 기능 무료사용 가능
profile
true nobility is being superior to your former self

0개의 댓글