도커와 컨테이너

JoyJuhee·2022년 11월 4일
0
post-thumbnail

가상화 배포

  • 가상머신을 기반으로 배포하는 것

  • 중간에 있는 하이퍼바이저는 하나의 시스템 상에서 가상 컴퓨터를 여러 개 구동할 수있도록 해 주는 중간계층
    👉 컴퓨터 한대로 여러개의 앱을 독립적으로 돌릴 수 있다.
    👉 클라우드도 이 때문에 가능

  • 가상머신 : 컴퓨터의 모든 부품을 애뮬레이션 한 것.
    👉 모든 부품의 모든 기능을 소프트웨어적으로 구현 (하드웨어를 갈아끼듯이)

  • 그러나, OS가 공유가 안되기 때문에 가상머신에 일일히 OS를 설치해야하는 등 비용이 많이 든다.

컨테이너 배포

  • 컨테이너는 코드와 모든 종속성을 패키징하는 소프트웨어의 표준 단위이다. (django, react.js, mysql 등을 다 한 곳에 패키징)
    👉 컨테이너의 '이미지'라고 하는 파일에 모든 라이브러리와 종속성을 포함하는 코드 기반 파일에 저장된다.

  • 컨테이너는 가상머신(VM)과 유사하지만 격리 속성을 완화하여 애플리케이션 간에 운영체제를 공유하며 가상머신보다 경량화 되어있다.
    👉 그만큼 실행이 빠르며 가상화 배포보다 약 5배의 애플리케이션을 실행할 수 있다.

  • 그러나, 컨테이너는 OS를 공유하는 방식이기 때문에 애플리케이션의 문제가 OS에 영향을 미치면 OS에서 구동 중인 전체 컨테이너의 문제가 될 가능성이 있다.

도커

  • 컨테이너라는 경량 단위로 애플리케이션을 실행하는 기능을 제공하는 플랫폼
    👉 여러 컴퓨터 간에 공유된 규격으로 리소스를 공유할 수 있어 유지보수성이 증대된다.

  • IaaS의 장점인 이식성, PaaS의 장점인 운영비가 저렴함을 갖춘 도구이다.

  • 도커파일 빌드 -> 도커이미지 생성 및 실행 -> 도커컨테이너 실행
    👉 도커파일 : 컨테이너에 설치해야하는 패키지, 환경변수설정 등을 기록한 하나의 파일(파이썬3설치, node.js 설치, 어떤 파일을 어디로 복사 등)
    👉 도커이미지 : 도커가 도커파일의 단계에 다라 컴퓨터의 상태를 '스냅샷'으로 저장
    👉 컨테이너 : 도커가 이미지를 불러와서 실행할 때 생성된다. 실행중인 컨테이너는 이미지에 지정된 프로그램과 데이터를 사용해 일반적인 실제 컴퓨터와 연결되어 사용가능.


출처 : 인프런 CS지식의 정석

0개의 댓글