티스토리 뷰
Container
:Container(컨테이너)는 격리된 공간에서 프로세스가 동작하는 기술이다.
가상화 기술의 하나지만 기존 방식과는 차이가 있다.
기존의 가상화 방식은 주로 OS를 가상화하였다. 우리에게 익숙한 VMware나 VirtualBox 같은 가상머신은 호스트 OS위에 게스트OS전체를 가상화하여 사용하는 방식입니다. 이 방식은 여러가지 OS를 가상화할 수 있고 비교적 사용법이 간단하지만 무겁고 느려서 운영환경에선 사용할 수 없었습니다.
이런 문제 상황을 개선하기 위해 CPU의 가상화 기술(HVM)을 이용한 KVM(kernel-based Virtual Machine과 반가상화 Paravirtualization방식의 Xen이 등장합니다. 이러한 방식은 게스트 OS가 필요하기 하지만 전체 OS를 가상화하는 방식이 아니였기 때문에 호스트형 가상화 방식에 비해 성능이 향상되었습니다. 이 기술은 차후에 OpenStack이나 AWS 같은 클라우드 서비스에서 가상 컴퓨팅 기술의 기반이 되었습니다.
전가상화든 반가상화든 추가적인 OS를 설치하여 가상화하는 방법은 어쨋든 성능문제가 있었고 이를 개선하기 위해 프로세스를 격리하는 방식이 등장합니다.
리눅스에서는 이 방식을 리눅스 컨테이너라고 하고 단순히 프로세스를 격리시키기 때문에 가볍고 빠르게 동작합니다. CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능적으로도 거의 손실이 없다. 하나의 서버에 여러 개의 컨테이너를 실행하면 서로 영향을 미치지 않고 독립적으로 실행되어 마치 가벼운 VM을 사용하는 느낌을 준다
'Docker' 카테고리의 다른 글
Docker machine (0) | 2021.09.02 |
---|---|
Image (0) | 2021.09.02 |
도커(Docker)란 무엇인가 (0) | 2021.09.02 |