Infra & Devops/Docker

[Docker] Docker 란?

겸둥이xz 2021. 9. 14. 03:48
반응형

Docker의 개요

  • Docker는 애플리케이션의 실행에 필요한 환경을 하나의 이미지로 모아둔다
  • 이미지를 사용하여 다양한 환경에서 애플리케이션 실행 환경을 구축 및 운용하기 위한 오픈 소스 플랫폼
  • 이미지만 있으면 동일환 환경에서 애플리케이션을 가동할 수 있다
  • Docker 내부에서 컨테이너 기술을 사용한다
  • 이식성(portability)이 높기 때문에 클라우드 시스템과 친화력도 높다
    • 온프레미스 환경에 대한 이쩐 뿐만 아니라 '온프레미스 ➡️ 클라우드', '클라우드 ➡️ 온프레미스' 간에도 시스템 요건이나 예산에 따라 손쉽게 실행 환경을 선택할 수 있다

 

 

Docker 컨테이너의 특징

  • 모듈성
    • 전체 애플리케이션을 분해할 필요 없이 일부를 분해하고, 업데이트 또는 복구하는 능력에 집중
  • 계층 및 이미지 버전 제어
    • 각 도커 이미지 파일은 일련의 계층으로 이루어짐, 새로운 컨테이너를 구축할 때 이러한 계층을 사용하므로 구축 프로세스가 빠름
  • 롤백
    • 모든 이미지에는 계층이 있고, 현재의 이미지가 부적절한 경우 이전 버전으로 롤백할 수 있음
  • 신속한 배포
    • 컨테이너를 활용해 배포 시간을 몇 초로 단축 가능
VM과 달리 컨테이너는 호스트 OS 리소스의 제어된 부분을 이용하고, 요소들이 VM 수준으로 엄격히 격리되지 않는다.
Docker 컨테이너는 stateless, immutable 한 특징이 있다. 기본적으로 이미지는 일단 생성되면 변경되지 않는다.
그러나 컨테이너 인스턴스는 일시적이고, 인스턴스가 시스템 메모리로부터 제거되면 영원히 사라진다.
VM처럼 컨테이너를 세션들에 걸쳐 지속시키려면 지속성을 위한 설계가 필요하다.

 

반응형