컨테이너 개념 및 이해하기
2022. 9. 26. 18:35ㆍ교육/클라우드 인프라
컨테이너란?
소프트웨어 서비스 실행하는데 필요한 특정 버전의 프로그래밍 언어 실행 및 라이브러리와 같은 종속 항목과 애플리케이션 코드를 함께 포함하는 경량 패키지입니다. 즉, 어떤 환경에서나 실행하기 위해 필요한 모든 요소를 포함하는 소프트웨어 패키지입니다.
무겁고 느린 가상화 방식을 해결하기 위해 프로세스를 격리하는 방안으로 등장하였습니다.
컨테이너 장점
1) 책임 분리 : 컨테이너화가 가능하여, 개발자는 개발에만 IT운영팀은 배포 및 관리에 집중할 수 있게 됩니다.
2) 데이터 이동성 : 컨테이너는 Linux, Windows, Mac 등 운영체제(OS)를 가리지 않고 사실상 어느 환경에서나 구동되므로 개발 및 배포가 쉬어집니다.
3) 애플리케이션 격리 : 운영체제 수준에서 CPU, 메모리, 스토리지, 네트워크 리소스를 가상화하므로 다른 애플리케이션으로부터 격리된 OS 환경을 제공합니다.
VM(Virtual Machine) 과 컨테이너(Container) 차이점
VM(Virtual Machine) | 컨테이너(Container) | |
시작 시간 | 길다 (분) | 짧다 (초) |
중점 | 인프라, 시스템 관리자 | 애플리케이션 개발자 |
무게 | ![]() 수 GB ~ 수백 GB OS + 애플리케이션 + 런타임 소프트웨어 |
![]() 애플리케이션 + 런타임 소프트웨어 |
Guest OS | Windows, Linux 등 다양한 선택가능 | 호스트 OS와 동일한 OS |
이식성 | 변환 필요 | 이미지 그대로 사용 |
성능 | 가상 머신에 구축된 애플리케이션을 실행 시 메모리 사용이 필요 이상으로 많아져 가상 머신이 호스트에 필요한 리소스를 모두 사용할 수 있다. | 가상머신보다 리소스를 더 적게 사용하고 메모리에 가해지는 부담을 줄일 수 있도록 운영 체제 환경(커널) 을 공유한다. |
유지관리 및 업데이트 | 기존 컴퓨터를 하나씩 업데이트해야 하고 각 게스트 OS를 개별적으로 패치해야 한다. | 컨테이너 호스트의 운영체제만 업데이트 하면 된다. |
※ 컨테이너 오케스트레이션 : 애플리케이션을 지원하기 위해 컨테이너를 배포하고 구성하는 것을 말합니다. 도구를 통해 수행됩니다.(Kubernetes, Docker Swarm, LXC 등)
'교육 > 클라우드 인프라' 카테고리의 다른 글
네트워크 플러그인(Network Plugin) (1) | 2022.09.30 |
---|---|
컨테이너간 통신 실습하기 (1) | 2022.09.30 |
Kubernetes(쿠버네티스, K8S) 기초 실습 (0) | 2022.09.27 |
Kubernetes(쿠버네티스) 간단한 설명 (0) | 2022.09.27 |
Docker Desktop 이용하여 Nginx 설치하기 (0) | 2022.09.26 |