가상머신, 컨테이너 그리고 도커(docker)

ralook·2022년 7월 23일
0

안녕하세요 알아보자 ralook입니다.
면접질문에 대한 내용을 남기고자 합니다.
저는 말로 설명을 잘 못하는 것 같습니다. 반성의 시간을 갖고자
공부내용을 남기고자 블로그를 작성합니다.

1. 가상화

하이퍼바이저 이용한 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식

하이퍼바이저란?

가상 머신을 생성하고 실행하는 프로세스

1.1 가상화의 구조

2. 컨테이너

가상화된 공간을 생성하기 위해 리눅스의 자체 기능인 chroot, 네임스페이스, cgroup을 사용으로 프로세스 단위로 만들어진 격리 환경

2.1 chroot?

change root directory의 줄인말로 현재 실행중인 프로세스와 자녀 프로세스의 루트 디렉토리를 변경하는 작업

2.2 namespace

개체를 구분할 수 있는 범위를 나타내며 하나의 이름 공간안에서는 하나의 이름의 하나의 개체만을 가리키게 되고, 파일시스템은 파일에 이름을 할당하는 공간

2.3 cgroup

다수의 process가 포함되어 있는 process group단위로 resource 사용량을 제한하고 격리시키는 linux 기능

(resource : cpu, memory, disk, network)

2.4 컨테이너 구조

3. docker

리눅스 컨테이너에 여러기능을 추가한 애플리케이션을 컨테이너로 사용하는 오픈소스 프로젝트

3.1 도커의 장점

애플리케이션, 개발과 배포가 편해짐

호스트 os 위에서 실행되는 격리된 공간이므로 컨테이너 자체에 권한을 주지 않는다면 컨테이너 내부에서도 수많은 소프트웨어를 설치를 하고 설정파일 수정해도 호스트os는 영향을 받지 않음. 독립된 개발환경을 보장

여러 애플리케이션의 독립성과 확장성이 높아짐

기존 모놀리식 애플리케이션 방식과 달리 마이크로 서비스 구조

3.2 모놀리식

상용하는 로직을 하나의 프로그램 내에서 구동시키는 방식

3.3 마이크로서비스

여러 모듈을 독립된 형태로 구성하기 때문에 언어에 종속되지 않고 변화에 빠르게 대응이가능하며 각 모듈의 관리가 쉬워진다는 장점

profile
먼지보다 가벼운 지식이 모자란 걸 채우기위한 블로그

0개의 댓글