2022이전/Docker&Kubernetes
[개념] Docker 기본 구조
바로퇴장
2020. 6. 11. 16:54
도커는 운영체제 수준의 가상화 기법을 사용한다. 운영체재 내에서 응용 프로그램 대상으로 폐쇄되고 제한되어 분리된 환경을 제공하는 것이다.
컨테이너 화(Containerization)
- 컨테이너 기반 가상화를 가상 머신 기반 가상화와 구별하기 위해 때로는 가상화 대신
컨테이너화
라는 용어를 사용한다.
컨테이너의 이해
컨테이너는 운영체제의 가상화 기법을 이용해 경량의 가상화를 제공한다. 다양한 기능 중에서 네임스페이스(Namespace)와 Cgroup(Control-group)이 중요한 역할을 제공한다.
네임스페이스 격리(Namespace Isolation)
네임스페이스 격리 또는 네임스페이스는 프로세스 상에서 사용하는 특정 자원에 대한 가시성을 제한하기 위해 리눅스 커널에 구현된 기능이다. 별도의 네임스페이스를 사용하는 프로세스 간에는 서로의 자원을 볼 수 없도록 하는 것이다.
컨트롤 그룹(Control-group, Cgroup)
네임스페이스를 사용하는 아이디어는 시스템 자원에 대해 프로세스마다 다른 가시성을 제공하는 것이다. 이를 통해 어느 정도 의 격리는 제공하지만 그 자원들을 사용하는 것을 막지는 못한다.
예, 마운트 네임스페이스에서는 프로세스에서 사용할 수 있는 디스크공간의 최대 용량을 제한 할 수 없다.
Cgroup은 CPU, 메모리, 디스크I/O 등과 같은 자원을 제어하며 우선순위를 조정할 수 있고 자원의 사용을 제한할 수 있도록 한다.