1. container 와 vm 비교

* VM 방식

 VM 방식은하이퍼바이저라는 논리적 OS 플랫폼 위에 새로운 os를 설치합니다. 따라서 어플리케이션 실행 시 이미지+OS 와 통신해야 하는 구조라서 성능문제 발생할 수 있습니다. (이미지: 소스코드 + 컴파일된실행파일)

 

* Container

 그림으로 보면 이해가 쉬울 것 같습니다. container 는 guestOS 가 없는 리눅스입니다. 컨테이너 방식에서는 guest OS 없이 host OS의 자원을 다같이 공유합니다.

 따라서, 프로세스가 격리되어 가볍고 속도가 빠르며 CPU, 메모리는 프로세스가 필요한 만큼만 사용하기 때문에 성능 손실 없음.

 

* 도커

 도커는 container로 실행하기 때문에 속도가 빠릅니다. 초기에는 리눅스container 로 개발했으나 0.9버전에서는 libcontainer기술 사용합니다.

 

2. Docker 엔진

Linux, windows OS 에서 가능합니다. Single host 위의 single contiainer부터 multi-container 어플리케이션까지 가능하며 AWS, Azure 등에서도 지원이 가능합니다.

 

* 도커 적용 사례

- 구글: 지메일부터자사의 서비스를 관리하기 위해 약 20억개컨테이너 운영

- MS(Microsoft) : Windows Server 2016에서 도커적용

- 아마존 : AWS에서 도커를활용할 수 있게 함