본문 바로가기

System Software

[Docker]도커의 구조와 주요 용어 설명

반응형

도커의 역사


도커는 2013년 dotCloud에서 오픈 소스 프로젝트로 시작이 되었다. 애초에는 회사가 개발한 paas 서비스를 구동하기 위한 extension이었다. 허나 새로운 CEO의 등장과 함께 Linux Foundation에 합류를 하였고, 회사 이름을 Docker Inc로 바꿈과 함께 도커의 생태계 구축에 힘쓰기 시작하였다.

도커의 첫 발표 영상이다.

https://www.youtube.com/watch?v=wW9CAH9nSLs


막간 상식:

Iaas: Infrastructure as a Service 의 줄임말, 물리적인 자원을 가상화(예시: Amazon Web Service)

 

Paas: Platform as a Service 플랫폼을 가상화해서 제공한다.(예시: Google App Engine)

 

Saas: Software as a Service. 서비스를 소프트웨어의 형태로 제공한다. (예시: Netflix, Spotify 등)

 

 

 


컨테이너의 등장

Containers and Virtual Machines at Scale: A Comparative Study

전통적인 가상화는 hypervisor을 통해 하드웨어에서부터 가상화를 한다.

각각의 가상머신은 독립적인 os를 사용하며, 그 위에서 라이브러리 및 어플리케이션을 실행한다.  

컨테이너의 경우 os부터 가상화를 한다. 기존의 VM에 비해 Container는 가볍기 때문에 배포하기 유리하다는 장점이 있다.

허나 isolation하는 단계가 낮기 떄문에, 보안에서는 VM에 비해 취약하다는 단점이 있다.


도커란?

os 차원의 가상화를 위해서는 software로 컨테이너를 생성해야 하며, 이를 container runtime이라고 한다. 가장 대표적인 container runtime이 도커이다.

 


도커 관련 주요 용어 및 구조

https://docs.docker.com/get-started/overview/

도커 이미지

도커 이미지는 컨테이너를 실행하기 위한 파일이다.

도커 파일을 통해서 도커 이미지를 빌드 할 수 있고, 도커 이미지로 컨테이너를 띄울 수 있다.

도커 이미지와 도커 파일의 특징으로는 layer 구조로 이루어져 있다는것이다.

 

dockerfile 각각의 코드는 image 레이어로 전환된다.

docker image에서 layer는 공유 될 수 있기 떄문에, 파일 시스템에서 차지하는 전체 용량이 줄어든다.

또한 기존 이미지에 layer를 추가하고 싶을때 다시 다운로드 받지 않고 해당 layer만 추가하면 된다는 장점이 있다.

 

도커 데몬

지속적으로 백그라운드에서 실행이 되며, 도커의 API 요청을 기다리고, 도커 이미지, 컨테이너, 네트워크 등을 실행하는 역할이다.

반응형