본문 바로가기

빅데이터/개념 정리

docker에 대하여, 왜 인기일까?

 

 

 

 

 

 

도커


 

 

컨테이너 기반의 오픈소스 가상화 플랫폼이다.



다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다. 

 

 

 

 

 

docker container




컨테이너는 격리된 공간에서 프로세스가 동작하는 기술이다. 

리눅스에서는 리눅스 컨테이너라고 하고 단순히 프로세스를 격리시키기 때문에 가볍고 빠르게 동작한다. 
CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능적으로도 거의 손실이 없다.

하나의 서버에 여러개의 컨테이너를 실행하면 서로 영향을 미치지 않고, 독립적으로 실행되어 마치 가벼운 VM(Virtual Machine)을  사용하는 느낌을 준다. 

 

 

 

 

 

 

 

 

 

docker image


 



도커는 가상의 공간을 이미지로 만들어 저장한 후 하나의 이미지에서 여러개의 컨테이너를 생성할 수 있다.  
이 말은 한번 이미지를 만들어 놓으면 얼마든지 컨테이너를 띄울 수 있다는 의미다. 

 

그것도 완전히 독립된 가상의 공간에서 실행이 된다.  

관리자는 컨테이너가 어떻게 구성되어 있는지 신경쓸 필요가 없다. 

 

 

마치 가상머신 같지만, 가상머신과는 다르다.

 

 

호스트OS 위에 또 다른 OS를 가상화 하는 것이 아니라,같은 OS에서 프로세스를 격리 시켜 마치 독립적으로 실행한 것 처럼 사용한다.

 


이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않는다(Immutable). 


컨테이너는 이미지를 실행한 상태라고 볼 수 있고, 추가되거나 변하는 값은 컨테이너에 저장된다. 


같은 이미지에서 여러개의 컨테이너를 생성할 수 있고 컨테이너의 상태가 바뀌거나 삭제되더라도 이미지는 변하지 않고 그대로 남아있다.


말그대로 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 더 이상 의존성 파일을 컴파일하고 이것저것 설치할 필요가 없다. 

 

이제 새로운 서버가 추가되면 미리 만들어 놓은 이미지를 다운받고, 컨테이너를 생성만 하면 된다. 

 

 

 

 

레이어 저장방식




유니온 파일 시스템을 이용하여 여러개의 레이어를 하나의 파일시스템으로 사용할 수 있게 해준다. 


이미지는 여러개의 읽기 전용read only 레이어로 구성되고 파일이 추가되거나 수정되면 새로운 레이어가 생성된다.