Sunrin/Layer7

컨테이너와 도커

0. VM


0-1) Full Virtualization

주로 호스트 OS에 VMware나 Virtual Box 같은 가상머신을 이용해서 게스트 OS를 가상화했다.

기존 가상화 방식은 사용하기가 쉽고 여러가지 운영체제를 가상화할 수 있다는 장점이 있지만

프로그램이 무겁고 속도가 느리다는 단점이 있다.

 

0-2) Para Virtualization

위의 가상화 방식을 개선하기 위해서 반가상화 방식이 등장한다.

전 가상화는 하드웨어 전부를 가상화했다면, 반 가상화는 전부를 가상화하지는 않는다.

 

 

 

 

1. 컨테이너


컨테이너는 격리된 공간에서 프로세스가 동작하는 것을 의미한다.

위에서 언급한 가상화 기술과는 차이가 있다.

 

컨테이너는 애플리케이션의 실행헤 필요한 것들을 이미지(단위) 파일로 배포한다.

 

컨테이너는 네임 스페이스cgroup을 조합한 형태이다.

네임 스페이스 :
리눅스 시스템의 자원을 묶어서, 프로세스에 할당하는 방식이다.
자원을 하나로 묶어서 관리하기 때문에 하나의 프로세스를 관리하게 되는 것과 같다.
cgroup :
프로세스 그룹의 시스템 자원 사용량을 관리하며
자원을 과도하게 사용하는 것을 막는다.
이미지 :
컨테이너 실행에 필요한 파일 설정값을 포함하고 있는 것.
이미지를 실행한 상태를 컨테이너라고 할 수 있다.
이미지는 값이 변하지 않는데, 프로세스 실행 중에 바뀌는 값은 컨테이너에 저장이 된다.

 

 

 

 

2. 도커


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

 

도커 이미지는 Docker hub(hub.docker.com)에 등록해서 쓸 수 있다.

 

 

Docker Hub

Docker Certified:Trusted & Supported Products Certified Containers provide ISV apps available as containers. Certified Plugins for networking and volumes in containers. Certified Infrastructure delivers an optimized and validated Docker platform for enterp

hub.docker.com

 

직접 도커 저장소를 만들고 관리하며 쓸 수도 있다.

docs.docker.com/registry/

 

Docker Registry

This page contains information about hosting your own registry using the open source Docker Registry. For information about Docker Hub, which offers a hosted registry with additional features such as...

docs.docker.com