티스토리 뷰
Docker와 Hypervisor 기반 기술과의 비교
먼저 Docker는 하나의 Linux 시스템에 여러 Linux 시스템 운영을 위한 소프트웨어이다.
▷ Docker와 같은 컨테이너 기반 가상화 기술이 아직까지 리눅스 계열만 지원하는데 비해 Hypervisor는 다양한 기술을 지원하는 장점이 있다.
▷Docker는 실행환경의 격리를 통한 낮은 오버헤드와 편리한 배포 매커니즘을 가지고 있지만 윈도우와 같은 OS를 지원하지 못하는 단점이 있다.
* 가상화의 단점
1) 불필요한 기능의 중복
* 호스트 OS와 게스트OS간의 기능 중복
- 프로세스 스케줄링
2) 상대적으로 무겁다
* 오버헤드 (15 ~ 20%)정도
3) 배치(Deployment)의 어려움
컨테이너 기반 가상화
* 도커의 개념
1) Build-Ship-Run
이미지를 만들고 배포를 하고 수행하는데 쉽게 만듦.
* 기존의 가상화와 다른 개념
1) 하드웨어 가상화가 아닌 실행환경의 분리(isolation)
- Docker는 각 컨테이너 별로 완전하게 격리 시켰다.
- 그러므로 컨테이너 단위로 배포를 시킨다.
2) 각 컨테이너간 영향을 분리
Hypervisor는 Host OS위에 Guest OS를 올린다. Docker는 Guest OS 개념이 없다.
(Type2)
* 도커의 성능
1) 오버헤드가 5% 이내
기존 Hypervisor기반 가상화에서는 오버헤드가 10~15% 됐는데 Docker 사용시 3~5%이내다.
위 그림에서는 Network 성능이 떨어지는데 현재 최신 버전에서는 0.97~0.98 정도로 향상 되었다.
* 도커의 특징
1) 모든 컨테이너들이 동일 OS 커널 공유(Linux Only)
* 독립적인 스케줄링이나 CPU/메모리/디스크/네트워크를 가상화하지 않음
2) 리눅스의 특수 기능(LXC)을 사용한 실행환경 격리를 응용
* 리눅스에서만 사용 가능
- 처음에는 우분투에서 / 현재 리눅스 배포판(fedora, RHEL, centos,...)에서 사용 가능
* 다른 OS(윈도우/OSX)에서는
- 일반 하이퍼바이저(경량)가 있어야 함
* 현재는 LXC -> Libcontainer를 사용해 리눅스 의존도를 줄이려 하고 있음
**********************도커의 특징 정리**********************
1) 시스템의 분리에는 Linux Containers(LXC)
- 컨테이너 독립기능 제공
2) 파일 시스템은 Advanced multi layered unification filesystem(Aufs)를 사용
- Aufs를 설명하자면 예를들어 계열이 비슷한 Ubuntu랑 Debian이 있다고 하자.
위 두개의 이미지를 동시에 만든다고 하면, 대부분의 공통적인 부분은 Share 하고
차이가 나는 부분만 별도로 나눠서 저장하는 개념의 파일 시스템
3) Git과 같은 이미지 버전컨트롤 시스템 도입
▷ 리눅스 컨테이너 가상화(LXC) 기반
▷ 2014년 6월 1.0 출시
▷ 구글과 같은 메이저 벤더들에 빠른 속도로 채택
▷ 현재 사실상의 표준(de facto standard)이 됨
▷ 하이퍼바이저와 달리 게스트OS란 계층이 없고 커널을 공유하면서 실행환경을 격리시키는 개념으로
나왔기 때문에 더 가볍고, 빠른 성능이 남
▷ 하이퍼바이저 기반의 우분투와 도커 기반의 우분투가 실제 설정/사용하는 방식이 상이(가장 중요)
* 환경변수 설정, 서비스 수행 방식,...
▷ 구글에서 만든 Go라는 언어로 작성
/***/ Summary /***/
▷ 하이퍼바이저의 특징 및 한계점
- 기능의 중복, 오버헤드가 많다.
▷컨테이너 기반 가상화의 특징
- 실행환경의 격리, 오버헤드가 작다, 게스트 OS로 리눅스/유닉스 계열 OS만 가능하다.
▷도커
- Go언어로 작성, LXC(리눅스컨테이너)를 사용해서 제작 // libcontainer로 OS에 관계없는 적용 목표
- LXC = cgroups + namespace
- LXD(Machin Container) vs LXC(Application Container)'Container & K8S & Automation > Docker' 카테고리의 다른 글
2) Docker 설치 및 컨테이너 실행 (0) | 2019.01.30 |
---|---|
Docker - 컨테이너란? (Container) (1) | 2019.01.30 |
1) Docker(도커)란? (0) | 2019.01.30 |
Docker - LXD (0) | 2019.01.16 |
Docker - LXC (0) | 2019.01.16 |
- Total
- Today
- Yesterday
- docker 볼륨
- 쿠버네티스
- docker 명령어
- docker volume
- docker 설치
- 쿠버네티스란
- k8s란
- 쿠버네티스 설치 종류
- docker command
- 도커 설치
- docker pull
- docker run
- kubeadm
- CKA 시험
- 도커 네트워크
- 쿠버네티스 설치 방법
- 도커 volume
- CKA 취득후기
- docker
- docker create
- kubespray
- 도커 포트 바인딩
- Docker 바인딩
- 도커 볼륨
- 쿠버네티스 종류
- 도커 포트
- 쿠버네티스 설치
- 도커
- Docker Port
- docker network
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |