2022이전/Docker&Kubernetes

[개념] Docker 기본 구조

바로퇴장 2020. 6. 11. 16:54

도커는 운영체제 수준의 가상화 기법을 사용한다. 운영체재 내에서 응용 프로그램 대상으로 폐쇄되고 제한되어 분리된 환경을 제공하는 것이다.

컨테이너 화(Containerization)

  • 컨테이너 기반 가상화를 가상 머신 기반 가상화와 구별하기 위해 때로는 가상화 대신 컨테이너화 라는 용어를 사용한다.

컨테이너의 이해

컨테이너는 운영체제의 가상화 기법을 이용해 경량의 가상화를 제공한다. 다양한 기능 중에서 네임스페이스(Namespace)Cgroup(Control-group)이 중요한 역할을 제공한다.

네임스페이스 격리(Namespace Isolation)

네임스페이스 격리 또는 네임스페이스는 프로세스 상에서 사용하는 특정 자원에 대한 가시성을 제한하기 위해 리눅스 커널에 구현된 기능이다. 별도의 네임스페이스를 사용하는 프로세스 간에는 서로의 자원을 볼 수 없도록 하는 것이다.

컨트롤 그룹(Control-group, Cgroup)

네임스페이스를 사용하는 아이디어는 시스템 자원에 대해 프로세스마다 다른 가시성을 제공하는 것이다. 이를 통해 어느 정도 의 격리는 제공하지만 그 자원들을 사용하는 것을 막지는 못한다.

예, 마운트 네임스페이스에서는 프로세스에서 사용할 수 있는 디스크공간의 최대 용량을 제한 할 수 없다.

Cgroup은 CPU, 메모리, 디스크I/O 등과 같은 자원을 제어하며 우선순위를 조정할 수 있고 자원의 사용을 제한할 수 있도록 한다.