Linux 컨테이너
향상된 컴퓨터의 성능으로 인해 그 성능을 더 효율적으로 사용하기 위한 가상화라는 단어가 친숙해졌습니다. 처음에는, 가상화 기술을 사용하기 위해여 KVM, VMWARE 같은 하이퍼바이저를 사용하는 기술을 사용하였지만, 최근에는 Docker로 대표되는 리눅스 컨테이너(LXC)와 같은 컨테이너 형 가상화 기술을 이 더 각광받고 있습니다. 컨테이너형 가상화 기술은 기존 기술보다 더 가볍고, 이식성이 뛰어난 특징을 가지고 있습니다. 그리고 '가상화'라기 보단 '격리'라는 개념에 더 가깝다고 합니다. (말그대로 컨테이너안에 가둔다는 것 같습니다.) 리눅스 컨테이너를 살펴보면 OS 내부는 물리적 자원을 관리하는 "커널 공간"과 애플리케이션을 실행하는 "사용자 공간"으로 나누어집니다. 컨테이너형 가상화 기술은 사용자 공간(User space)를 나누어 각각의 사용자 프로세스에서 보이는 리소스를 제한하는 방법입니다. 1. LXC (Linux Container)란? LXC (LinuX Containers)는 단일 컨트롤 호스트 상에서 여러개의 고립된 리눅스 시스템 (컨테이너)들을 실행하기 위한 운영 시스템 레벨 가상화 방법이다. 리눅스 커널은 cgroups를 절충하여 가상화 머신을 시작할 필요 없이 자원 할당 (CPU, 메모리, 블록 I/O, 네트워크 등)을 한다. Cgroups는 또한 애플리케이션 입장에서 프로세스 트리, 네트워크, 사용자 ID, 마운트된 파일 시스템 등의 운영 환경을 완전히 고립시키기 위해 namespace isolation을 제공한다. LXC는 cgroups와 namespace를 결합하여 애플리케이션을 위한 고립된 환경을 제공한다. Docker 또한 실행 드라이버의 하나로 LXC를 사용할 수 있으며 이를 통해 이미지 관리와 개발 서비스를 제공한다. - 위키피디아 2. 기존 가상화 기술과 LXC의 차이점 ...