본문 바로가기

Infra/Kubernetes

Docker

 

Container

 

격리된 공간에서 프로세스가 동작하는 기술

가상화 기술의 하나지만 기존 방식과 차이가 있음

기존의 가상화 방식 - OS를 가상화

VMware / VirtualBox같은 가상머신은 호스트 OS위에 게스트 OS 전체를 가상화하여 사용하는 방식

위 방식은 여러가지 OS를 가상화 할 수 있고 비교적 사용법이 간단하지만 무겁고 느림

이러한 상황을 개성하기 위해 CPU의 가상화 기술(HVM)을 이용한 KVM과 반가상화 방식의 Xen 등장

위 방식은 게스트 OS가 필요하긴 하지만 전체 OS를 가상화하는 방식이 아니였기 때문에 호스트형 가상화 방식에 비해 성능이 향상됨

OpenStack / AWS / Rackspace 같은 클라우드 서비스에서 가상 컴퓨팅 기술의 기반이 됨

 

 

전가상화든 반가상화든 추가적인 OS를 설치하여 가상화하는 방법은 어쨋든 성능문제가 있었고

이를 개선하기 위해 프로세스를 격리하는 방식이 등장

리눅스에서는 이 방식을 리눅스 컨테이너라고 하고 단순히 프로세스를 격리시키기 때문에 가볍고 빠르게 동작함.

CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능적으로도 거의 손실이 없음

 

하나의 서버에 여러개의 컨테이너를 실행하면 서로 영향을 미치지 않고 독립적으로 실행됨 -> 가벼운 VM을 사용하는 느낌

실행중인 컨테이너에 접속하여 명령어를 입력할 수 있고 apt-get / yum 으로 패키지를 설치 할 수 있으며 사용자도 추가하고 여러개의 프로세스를 백그라운드로 실행할 수도 있음

CPU 메모리 사용량을 제한 있고 호스트의 특정 포트와 연결하여 호스트의 특정 디렉토리를 내부 디렉토리인 것처럼 사용할 수도 있음

 

출처 : 

'Infra > Kubernetes' 카테고리의 다른 글

Cluster  (0) 2021.09.24
Container Orchestration  (0) 2021.09.24