티스토리 뷰
들어가기전..
이 글을 작성하게 된 이유는 저와 같이 도커를 사용하지만 도커의 태생?? 이라고 해야할까요? 도커를 깊게 생각해보지 못했던 분들에게 조금이라도 도움이 되고자 간략하게나마 공유하고자 합니다.
가상화 기술의 등장 이전의 서버 활용
- 한대의 서버를 하나의 용도로만 활용
- 남는 서버 공간은 그대로 방치가 됨
- 하나의 서버에 하나의 운영체제만을 가지며 하나의 프로그램만을 동작
하이퍼 바이저 가상화 기술의 출현
논리적으로 공간을 분할하여 VM이라는 독립적인 가상 환경의 서버 이용이 가능해졌습니다. 특히 하이퍼 바이저는 호스트 시스템에서 다수의 게스트 OS를 구동할 수 있게 하는 소프트웨어로 등장하였고 하드웨어를 가상화하면서 하드웨어와 각각의 VM을 모니터링하는 중간 관리자 역할을 하게 되었습니다.
하이퍼 바이저 두가지 사용 형태
1. 네이티브 하이퍼바이저
하이퍼 바이저가 하드웨어를 직접 제어하기에 자원 효율적으로 사용가능하며 별도의 호스트 OS가 없으므로,
오버헤드가 적다. 단 여러 하드웨어 드라이버를 세팅해야 하므로 설치가 어렵습니다.
2. 호스트형 하이퍼바이저
일반적인 소프트웨어 처럼 호스트 OS 위에 동작하는 형태이며, 하드웨어 자원을 VM 내부의 게스트 OS에 에뮬레이트 하는 방식으로 오버헤드가 큽니다.
하지만 게스트 OS 종류에 대한 제약이 없고, 구현이 다소 쉬운 구조입니다. 일반적으로 많이 사용하는 방식입니다.
하이퍼 바이저 기반의 VM 구조
하이퍼바이저에 의해 구동되는 VM은 각 VM마다 독립된 가상 하드웨어 자원을 할당받습니다.
논리적으로 분리되어 있기 때문에 한 VM이 오류가 발생하더라도 다른 VM으로 퍼지지 않든다는 장점이 있습니다.
도커 컨테이너와 가상화 기술 비교
- vm과 비교했을 때 컨테이너는 하이퍼바이저와 게스트 OS가 필요하지 않으므로 더 가볍습니다.
- 애플리케이션을 실행할 때는 컨테이너 방식에서는 호스트 OS위에 애플리케이션의 실행 패키지인 이미지를 배포하기만 하면 되는데 VM은 애플리케이션을 실행하기 위해서 VM을 띄우고 자원을 할당하고 게스트OS를 부팅하여 애플리케이션을 실행해야 하기에 훨씬 복잡한 구조를 가집니다.
결론
도커 컨테이너에서 돌아가는 애플리케이션은 컨테이너가 제공하는 격리 기능 내부에 샌드박스가 있지만, 여전히 같은 호스트의 다른 컨테이너와 같이 같은 커널을 공유합니다. 그렇기에 컨테이너가 전체 OS를 내장할 필요가 없게됩니다. 이러한 효과로 인해 매우 가볍고, 일반적으로 5~100MB 크기를 가지게 되었습니다.
참조
'linux > docker' 카테고리의 다른 글
Docker 이미지와 컨테이너의 정의 (0) | 2024.10.04 |
---|---|
도커란? (0) | 2024.10.04 |
Docker 컨테이너와 외부 폴더 간의 연결에 대한 회고… (0) | 2024.09.19 |
Docker 일반 계정에 권한 부여하기 (0) | 2024.07.29 |
DockerFile 실습(SpringBoot 프로젝트 로컬에서 띄우기) (1) | 2024.02.26 |
- Total
- Today
- Yesterday
- 리눅스
- dockerfile
- leatcode
- 네이버 클라우드
- docker
- Linux
- 정의
- 이미지
- Quartz
- 스케줄러
- 알고리즘
- 캐시
- spring
- hazelcast
- insert
- 격리수준
- Lock
- mybatis
- 컨테이너
- LocalDate
- Cache
- 권한
- 개념 이해하기
- ncp
- Java
- 캘린더
- dfs
- MySQL
- centos7
- 도커
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |