*Docker: 컨테이너 기술을 사용해 애플리케이션의 실행 환경을 구축 및 운용하기 위한 플랫폼.
1. 컨테이너 가상화
컨테이너: 호스트 OS 상에 논리적인 구획(컨테이너)를 만들고 애플리케이션을 작동시키기 위해 필요한 라이브러리나 애플리케이션 등을 하나로 모아 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것. 호스트 OS의 리소스를 논리적으로 분리시키고, 여러 개의 컨테이너가 공유하여 사용한다. 컨테이너는 오버헤드가 적기 때문에 고속으로 작동한다.
컨테이너 기술을 사용하면 OS나 IP주소 같은 시스템 자원을 마치 각 애플리케이션이 점유하고 있는 것처럼 보이게 할 수 있다. 여러 개의 컨테이너를 조합해 하나의 애플리케이션을 구축하는 마이크로서비스형 애플리케이션과 친화성이 높다.
2. 호스트형 서버 가상화
호스트 OS 위에 가상화 SW를 올리고, 이 가상화 SW 상에서 게스트 OS를 작동시키는 기술. 컨테이너와 달리 호스트 OS 상에서 다른 게스트 OS를 움직이고 있기 때문에 오버헤드가 커진다. *오버헤드: 가상화를 수행하기 위해 필요한 CPU 자원, 디스크 용량, 메모리 사용량 등 ex) VMware Workstation Player, Oracle VM Virtual Box
3. 하이퍼바이저형 서버 가상화
호스트 OS 없이 하드웨어 위에 하이퍼바이저 SW를 배치하고 하드웨어와 가상환경을 제어한다. 가상환경마다 별도의 OS가 작동하므로 가상 환경의 시작에 걸리는 오버헤드가 커진다.
컨테이너 기술과 서버 가상화 기술은 비슷하지만 목적이 다르다.
컨테이너 기술은 애플리케이션의 실행 환경을 모음으로써 이식성(= 소프트웨어가 한 컴퓨터 시스템이나 환경에서 다른 시스템이나 환경으로 쉽게 옮겨질 수 있는 성질)을 높이고 확장성이 좋은 환경에서 작동하는 것을 지향하는 반면 / 서버 가상화 기술은 서로 다른 환경을 어떻게 에뮬레이트할 지에 초점을 두고 있다.
'클라우드 > Docker' 카테고리의 다른 글
도커(Docker)의 기능 및 작동 구조 (0) | 2021.09.22 |
---|