티스토리 뷰

infra/docker

컨테이너의 이해

Redirect 2024. 1. 16. 11:22
728x90

- 컨테이너는 OS의 기능을 활용해서 프로세스를 격리하고, 격리된 프로세스가 리소스를 쉽게 공유할 수 있도록 해준다.
- 게다가 격리된 프로세스 형태로 실행되므로, 환경에 상관없이 안정적이며 일관된 배포를 제공한다.

 

728x90


1. VM 과 차이점

  • VM은 하이퍼바이저(가상화 소프트웨어 계층) 을 통해 하드웨어를 가상화한다.
  • 컨테이너는 시스템 커널 OS를 공유하기 때문에 각 애플리케이션마다 OS가 필요하지 않는다.

 

2. 컨테이너의 이점

  • 시스템 OS 커널을 공유함으로써 애플리케이션마다 OS가 필요하지 않아 크기가 작고 가볍다.
  • 이식성 및 플랫폼 독립성 : 컨테이너가 모든 종속 항목들을 자신과 함께 전달하므로, 호스트 운영체제와 상관없이 동일하게 유지되며 이를 재구성하지 않고 바로 실행할 수 있다.
  • 유지관리 효율 : 컨테이너는 OS 커널을 공유하기 때문에, OS 수준에서 업데이트/패치 작업을 수행하면 모든 컨테이너에 변경사항이 적용된다.
  • 활용도 향상 : 컨테이너를 사용하여 개발자와 운영자는 CPU 및 메모리 리소스의 활용도를 향상 시킬 수 있다.
  • 보안성 : 격리된 환경에서 실행되기 때문에, 한 컨테이너에서 발생한 문제들이 다른 컨테이너나 호스트 운영체제에 영향을 미치지 않는다.


3. 컨테이너 runtime

  • 컨테이너 runtime : 컨테이너의 실행을 위해 필요한 모든 환경을 제공하고 컨테이너의 생성이나 실행 및 관리를 위한 소프트웨어이다.
    • 저수준 runtime
      • namespace와 cgroup을 이용해서 컨테이너 자체를 만든다.
      • 이미지로부터 컨테이너를 실행하는 기능은 없다.
      • 예) runc
  • 고수준 runtime  
    • 저수준 runtime 위에 배치되어 이미지로부터 컨테이너를 실행할 수 있다.
    • 예) containerd, cri-OS  
  • docker
    • docker의 경우, docker-containerd 라는 고수준 runtime 과 docker-runc 라는 저수준 runtime을 이용해서 제공하고 있다.

 

 

 

 

쿠버네티스 이해하러 가보기

2024.01.18 - [infra/kubernetes] - 쿠버네티스의 기초

 

쿠버네티스의 기초

[ 쿠버네티스란? ] 컨테이너화된 워크로드와 서비스를 관리하기 위한 오케스트레이션 도구 [ 쿠버네티스를 관리하는 방법 ] 1.관리형 쿠버네티스 - 퍼블릭 클라우드 업체에서 제공하는 관리형 쿠

coding.lifeandmoney.kr

 

728x90

'infra > docker' 카테고리의 다른 글

docker insecure registry 설정  (0) 2023.12.27
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크