일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 메서드
- 알고리즘
- REACT
- jpa
- 스프링
- jQuery
- gradle
- 글로벌
- json
- 에러
- lightsail
- ES6
- arraylist
- SpringBoot
- Docker
- vue
- 자바스크립트
- java
- spring
- 현장학습
- 인텔리제이
- JavaScript
- keycloak
- 맥길대학교
- Flutter
- nginx
- jsp
- aws
- vue.js
- Keycloak 17.0.1
- Today
- Total
korean IT student
Docker - 도커와 기존의 가상화 기술(VM) 차이. 본문
도커 컨테이너 와 VM의 차이를 확인 해보자.
먼저, 공통점은 도커 컨테이너와 가상 머신은 기본 하드웨어에서 격리된 환경 내에 애플리케이션을 배치한다.
차이점
- 격리된 환경을 얼마나 격리를 시키는지의 차이
- 도커 컨테이너는 하이퍼바이저와 게스트 OS가 필요하지 않으므로 더 가볍다.
- 컨테이너는 호스트 OS위에 어플리케이션의 실행 패키지인 이미지를 배포하기만 하면 되는데
VM은 VM을 띄우고 자원을 할당하고 게스트 OS를 부팅하여 어플리케이션을 실행
도커 컨테이너
- 애플리케이션은 컨테이너가 제공하는 격리 기능 내부에 샌드박스가 있지만, 여전히 같은 호스트의 다른 컨테이너와 동일한 커널을 공유한다.
- 컨테이너 내부에서 실행되는 프로세스는 호스트 시스템에서 볼 수 있다.
- 컨테이너에 OS를 내장할 필요가 없어 매우 가볍다.
가상머신(VM)
- VM 내부에서 실행되는 모든 것은 호스트 운영 체제 또는 하이퍼바이저와 독립되어 있다.
- VM은 각각의 환경을 주어야하고 환경에 맞게 커널을 부팅한다.
- OS 까지 가상화하여야해서 느리다.
어떻게 해서 도커 컨테이너를 격리 시키는가?
- 리눅스에서 쓰이는 Cgroup과 네임스페이스를 사용한다.
- 컨테이너와 호스트에서 실행되는 다른 프로세스 사이에 벽을 만드는 리눅스 커널 기능
C Greup - CPU, 메모리 등 프로세스 그룹의 시스템 리소스 사용량을 관리 -> 사용량이 많을 경우 제한 기능
네임스페이스 - 하나의 시스템에서 프로세스를 격리시킬 수 있는 가상화 기술
'Infra > Docker' 카테고리의 다른 글
Docker - Dockerfile, Docker Image 만들기 (0) | 2020.09.07 |
---|---|
Docker - 기본적인 명령어 (0) | 2020.08.26 |
Docker - 이미지로 컨테이너 만드는 순서 (0) | 2020.08.26 |
Docker - 도커란 무엇인가? (0) | 2020.08.22 |
Docker - Windows 10 Home 설치법 (0) | 2020.08.18 |