Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

희원이 블로그

2. 하이퍼바이저와 컨테이너: 도커 개요 본문

Container

2. 하이퍼바이저와 컨테이너: 도커 개요

희워닝 2023. 12. 10. 21:17

1. 하이퍼바이저 vs 컨테이너

  하이퍼바이저 기반 가상화 컨테이너 기반 가상화
가상화 유형 하드웨어 가상화 운영체제 수준 가상화
시작 시간 느림 (몇 분) 빠름 (몇 초)
스케일링 느림 빠름
격리 강력한 격리 제한된 격리 (OS 커널 공유)
이미지 크기 수 GB ~ 수백 GB (OS를 포함하여 애플리케이션과 필요한 런타임 소프트웨어 필요) ~ 수백 MB (애플리케이션 및 종속성만 필요)
게스트 OS Windows/Linux 등 선택 가능 호스트 OS와 동일한 OS
게스트 OS와 관계 게스트 OS는 하드웨어로 인식 호스트 OS를 커널 수준으로 분리하여 OS를 가상화 형태로 사용하여 필요에 따라 호스트와 리소스 공유 가능
이식성 이미지에 대한 변환이 필요함 컨테이너 이미지 그대로 사용 가능
데이터 관리 VM 내부 또는 연결된 스토리지에 저장 컨테이너 내부에 있는 데이터는 종료 시 소멸되며, 필요에 따라 스토리지를 이용하여 저장
사용 용도 가상화된 서버 마이크로서비스, 컨테이너 오케스트레이션

 

2. 도커의 장점

  • 도커는 pivot_root, namespace, cgroup 등 리눅스 커널의 기능을 이용하여 프로세스를 격리하는 환경을 구축하며, 이로 인해 성능 손실이 거의 없습니다.
  • 호스트의 커널을 공유하면서 컨테이너 내부에는 애플리케이션을 실행하는데 필요한 라이브러리와 실행 파일만 존재하므로 이미지 용량이 줄어듭니다.
  • 컨테이너를 이미지로 만들어 배포하는 시간이 가상머신에 비해 빠릅니다.

 

3. 애플리케이션의 개발과 배포 관점에서의 도커

  • 도커 컨테이너는 격리되어 있어 컨테이너 내부에서 소프트웨어를 설치하고 설정 파일을 수정하더라도 호스트 OS에는 영향을 끼치지 않습니다.
  • 개발 환경에서 작업을 마치면 동일한 이미지를 운영 환경에 배포하여 별도의 설치 과정 없이 동일하게 쉽게 복제할 수 있습니다.
  • 도커 이미지는 커널을 포함하지 않아 때문에 이미지 크기가 작아져 효율적인 저장 및 전송이 가능합니다.

 

4. 애플리케이션의 독립성과 확장성 관점에서의 도커

  • 여러 도커 컨테이너를 함께 사용하면 MSA 아키텍처를 구현할 수 있습니다.
  • MSA (마이크로서비스 아키텍처)는 여러 모듈을 독립된 형태로 구성하는 것이며, 다음과 같은 장점이 있습니다.
    • 언어에 종속되지 않아 변화에 빠르게 대응할 수 있습니다.
    • 각 모듈의 관리가 쉬워집니다.
    • 각 모듈은 독립적으로 관리되어 모놀리식 아키텍처 문제를 해결하면서 확장성이 좋습니다.

 

5. Docker를 이용한 MSA 예시

  • 웹 서비스에 부하가 발생할 경우: 웹 서버 컨테이너를 동적으로 늘려서 분산할 수 있습니다.
  • 이미지 버전을 독립적으로 관리: 유지보수가 용이합니다.
  • 직접 MSA를 구현하지는 않음: 보통 도커 스웜, 쿠버네티스 등 컨테이너 오케스트레이션 플랫폼을 사용하여 구현합니다.

 

6. Docker 이미지

  • 도커 이미지는 컨테이너를 생성할 때 필요한 요소로 여러 계층으로 된 바이너리 파일입니다.
  • 컨테이너를 생성하고 실행할 때 읽기 전용으로 사용합니다.
  • 도커 명령어를 통해 내려받을 수 있어 별도로 설치할 필요가 없습니다.

 

출처

윤성국님의 컨테이너 강의

http://www.opennaru.com/cloud/virtualization-vs-container/

Comments