본문 바로가기

프로젝트/클라우드 스터디

[1회차] 01. 컨테이너 기술이란 무엇인가?

1회차 글

01. 컨테이너 기술이란 무엇인가?
02. 도커 컨테이너 환경 구축(로키 리눅스)

 

1. 가상화 기술이란? 

 한 컴퓨터의 물리적 시스템 자원(ex. cpu, 메모리, 디스크 등)을 여럿으로 나누거나 여러 컴퓨터의 물리적 자원을 하나로 묶어서 제공하는 기술을 통칭함. 




2. 컨테이너 기술이란? 

  우리가 흔히 컨테이너를 생각하면 떠오르는 이미지가 있다. 바로 화물, 항구 등에서 볼 수 있는 철제로 된 상자이다. 컨테이너 기술 역시 이와 같다. 컨테이너는 어떤 환경에서나 실행하기 위해 필요한 모든 요소를 포함하는 소프트웨어 패키지이며, 컨테이너는 이러한 방식으로 운영체제를 가상화하며 프라이빗 데이터 센터에서 퍼블릭 클라우드 또는 개발자의 개인 노트북에 이르기까지 어디서나 실행할 수 있다





기존 VM과 컨테이너 기술의 차이

 

 VM은 기존 OS위에 Ubuntu, Rcoky와 같은 다른 운영체제를 Guest Os로 올려 여러 VM을 만들 수 있게 된다. 구축한 GuestOS에 여러 어플리케이션을 구성해 사용하는 것이 VM 방식이다. 별도의 OS 환경으로 동작할 수 있으나, 이 때문에 무거운 OS를 실행하면 Host OS에 성능 부담이 될 수 있다. 

 

 컨테이너는 VM의 무겁고 느린 가상화 방식을 해결하기 위해 등장했다. 기존 HostOS를 사용한다는 점까지는 VM과 동일하다. 하지만 컨테이너 환경을 이용하기 위해서는 컨테이너 엔진(Container Engine)이라는 것이 필요하다. 이 컨테이너 엔진으로 많이 쓰이는 것이 바로 Docker사의 Docker이다. 그 후 어플리케이션을 작동하기 위해 필요한 라이브러리나 애플리케이션을 하나로 모아 컨테이너 안에 집어 넣어 컨테이너 하나하나가 별도의 서버인 것처럼 사용할 수 있게 된다.