본문 바로가기

About/Docker

[Docker] 컨테이너(Container)란?

Docker를 이해하기 위해서는 Docker의 배경 기술인 컨테이너 기술에 대한 이해가 필요하다.

 

컨테이너란?

컨테이너란 호스트 OS상에 논리적인 컨테이너를 만들고, 애플리케이션을 작동시키기 위해 필요한 라이브러리나 애플리케이션 등을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만든 기술

 

<Docker 구조>

호스트 OS는 리소스를 논리적으로 분리시키고 여러 개의 컨테이너가 공유하여 사용한다. 오버헤드가 적기 때문에 가볍고 고속으로 작동한다는 것이 특징이다.

보통 물리 서버 상에 설치된 호스트 OS의 경우 하나의 OS 상에서 여러 애플리케이션이 똑같은 리소스를 사용한다. 각 어플리케이션은 데이터를 저장하는 디렉토리를 공유하고, 서버에 설정된 IP주소로 통신을 하기 때문에 미들웨어나 라이브러리 버전이 다른 경우 각 애플리케이션이 서로 영향을 받지 않도록 주의해야한다.

 

하지만 컨테이너 기술을 사용하면 OS나 디렉토리, IP 주소와 같은 시스템 자원을 각 애플리케이션이 점유하고 있는 것처럼 보이게 할 수 있다.

 

 

 

컨테이너 기술은 FreeBSD라는 오픈소스 Unix의 'FreeBSD Jail'이나 썬마이크로시스템즈(Oracle)의 상용 Unix인 Solaris Containers 등이 있다. 또한 Linux 상에서 사용하는 컨테이너 환경인 LXC (Linux Containers)  이 있다.

'About > Docker' 카테고리의 다른 글

[Docker] Docker의 작동 구조 (2) (cgroups)  (0) 2020.12.27
[Docker] Docker의 작동 구조 (1) (namespace)  (2) 2020.12.13
[Docker] Docker 컴포넌트  (1) 2020.12.13
[Docker] Docker의 기능  (1) 2020.12.07
[Docker] Docker의 개요  (1) 2020.12.07